<?xml version="1.0" encoding="UTF-8"?>
<!--
  Device:2 Root Data Model definition [CWMP]

  Copyright (c) 2010-2025, Broadband Forum

  The undersigned members have elected to grant the copyright to
  their contributed material used in this software:
    Copyright (c) 2017-2019, 2021 ARRIS Enterprises, LLC.

  Redistribution and use in source and binary forms, with or
  without modification, are permitted provided that the following
  conditions are met:

  1. Redistributions of source code must retain the above copyright
     notice, this list of conditions and the following disclaimer.

  2. Redistributions in binary form must reproduce the above
     copyright notice, this list of conditions and the following
     disclaimer in the documentation and/or other materials
     provided with the distribution.

  3. Neither the name of the copyright holder nor the names of its
     contributors may be used to endorse or promote products
     derived from this software without specific prior written
     permission.

  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
  STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

  The above license is used as a license under copyright only.
  Please reference the Forum IPR Policy for patent licensing terms
  <https://www.broadband-forum.org/ipr-policy>.

  Any moral rights which are necessary to exercise under the above
  license grant are also deemed granted under this license.

  Comments or questions about this Broadband Forum data model should be
  directed to <info@broadband-forum.org>.
-->

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

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

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

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

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

      * Its value MUST NOT be empty.

      * Its value MUST start with a letter.

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

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

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

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

      * Its value MUST NOT be empty.

      * Its value MUST start with a letter.

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

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

  <dataType name="Dbm1000">
    <description>
      The value is measured in ''dBm/1000'', i.e. the value divided by 1000 is
      dB relative to 1 mW. For example, -12345 means -12.345 dBm, 0 means 0 dBm
      (1 mW) and 12345 means 12.345 dBm.
    </description>
    <int/>
  </dataType>

  <dataType name="DiagnosticsState">
    <description>
      Indicates the availability of diagnostics data. Enumeration of:

      {{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 values are {{enum|Requested}} and {{enum|Canceled}}. To
      ensure the use of the proper test parameters (the writable parameters in
      this object), the test parameters MUST be set, and any errors or
      inconsistencies in the test parameters MUST be detected, either prior to
      or at the same time as (in the same SetParameterValues) setting this
      parameter to {{enum|Requested}}.

      When requested, the CPE SHOULD wait until after completion of the
      communication session with the ACS before starting the diagnostic test.

      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), but not if it is canceled for any reason, 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.

      While the test is in progress, setting this parameter to
      {{enum|Canceled}} MUST result in the test being canceled and the value of
      this parameter being set to {{enum|None}}. If the CPE does not support
      the {{enum|Canceled}} value, it MUST return a SPV error with "Invalid
      Parameter value" (9007) to the ACS instead.
    </description>
    <string>
      <enumeration value="None" access="readOnly"/>
      <enumeration value="Requested"/>
      <enumeration value="Canceled" optional="true"/>
      <enumeration value="Complete" access="readOnly"/>
      <enumeration value="Error" access="readOnly" optional="true"/>
    </string>
  </dataType>

  <dataType name="IEEE_EUI64">
    <description>
      The IEEE EUI 64-bit identifier as defined in {{bibref|IEEE_EUI64}}. The
      IEEE defined 64-bit extended unique identifier (EUI-64) is a
      concatenation of:

      * The 24-bit (OUI-24) or 36-bit (OUI-36) company_id value assigned by the
        IEEE Registration Authority (IEEE-RA), and

      * The extension identifier (40 bits for OUI-24 or 28 bits for OUI-36)
        assigned by the organization with that company_id assignment.
    </description>
    <string>
      <size maxLength="23"/>
      <pattern value=""/>
      <pattern value="([0-9A-Fa-f][0-9A-Fa-f]:){7}([0-9A-Fa-f][0-9A-Fa-f])"/>
    </string>
  </dataType>

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

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

      * 216.52.29.100

      * 192.168.1.254

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

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

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

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

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

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

  <dataType name="IPv4Address" base="IPAddress">
    <description>
      IPv4 address (or subnet mask).

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

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

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

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

      * IPv4 example: 192.168.1.0/24

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

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

      * IPv4 example: 192.168.1.1/32

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

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

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

  <dataType name="IPv4Prefix" base="IPPrefix">
    <description>
      IPv4 address prefix.

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

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

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

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

  <dataType name="Order">
    <description>
      Position of the {{object}} entry in the order of precedence. A value of
      ''1'' indicates the first entry to be considered (highest precedence).

      When a {{object}} instance is created, or when an existing {{param}}
      value is modified, if the value matches that of an existing entry, the
      {{param}} values for the existing entry and all lower {{param}} entries
      are 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.

      If no {{param}} value is supplied on creation of a {{object}} instance,
      it MUST be assigned a value that is one more than the largest current
      value (lowest precedence).
    </description>
    <unsignedInt>
      <range minInclusive="1"/>
    </unsignedInt>
  </dataType>

  <dataType name="PLMNId">
    <description>
      Public Land Mobile Network Identifier. PLMN-Id is a concatenation of
      Mobile Country Code (MCC) and Mobile Network Code (MNC) as described in
      {{bibref|3GPP-TS.23.003|Clause 12.1}}. MCC value is always 3 digits,
      while the MNC value is either 2 or 3 digits.

      For example, a PLMN-Id value of 310410 refers to MCC 310 (USA) and MNC
      410 (AT&amp;T Mobility). A PLMN-Id value of 51001 refers to MCC 501
      (Australia) and MNC 01 (Telstra). Refer &lt;https://mcc-mnc.net&gt; for
      the list of PLMN-Ids assigned to various operators around the world.
    </description>
    <unsignedInt/>
  </dataType>

  <dataType name="StatsCounter32">
    <description>
      A 32-bit statistics parameter, e.g. a byte counter.

      This data type SHOULD NOT be used for statistics parameters whose values
      might become greater than the maximum value that can be represented as an
      ''unsignedInt'' (i.e. 0xffffffff, referred to below as ''maxval'').
      ''StatsCounter64'' SHOULD be used for such parameters.

      The value ''maxval'' indicates that no data is available for this
      parameter. In the unlikely event that the actual value of the statistic
      is ''maxval'', the CPE SHOULD return ''maxval - 1''.

      The actual value of the statistic might be greater than ''maxval''. Such
      values SHOULD wrap around through zero.

      The term ''packet'' is to be interpreted as the transmission unit
      appropriate to the protocol layer in question, e.g. an IP packet or an
      Ethernet frame.
    </description>
    <unsignedInt/>
  </dataType>

  <dataType name="StatsCounter64">
    <description>
      A 64-bit statistics parameter, e.g. a byte counter.

      This data type SHOULD be used for all statistics parameters whose values
      might become greater than the maximum value that can be represented as an
      ''unsignedInt''.

      The maximum value that can be represented as an ''unsignedLong'' (i.e.
      0xffffffffffffffff) indicates that no data is available for this
      parameter.

      The term ''packet'' is to be interpreted as the transmission unit
      appropriate to the protocol layer in question, e.g. an IP packet or an
      Ethernet frame.
    </description>
    <unsignedLong/>
  </dataType>

  <dataType name="UUID">
    <description>
      Universally Unique Identifier. See {{bibref|RFC4122}}.
    </description>
    <string>
      <size minLength="36" maxLength="36"/>
      <pattern
          value="[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}"/>
    </string>
  </dataType>

  <dataType name="URI">
    <description>
      Uniform Resource Identifier. See {{bibref|RFC3986}}.
    </description>
    <string>
      <size maxLength="2048"/>
    </string>
  </dataType>

  <dataType name="URL" base="URI">
    <description>
      Uniform Resource Locator. See {{bibref|RFC3986}} (URI),
      {{bibref|IANA-uri-schemes}}, and individual URI scheme RFCs such as
      {{bibref|RFC7252}} (''coap'', ''coaps'') and {{bibref|RFC7230}}
      (''http'', ''https'').
    </description>
  </dataType>

  <dataType name="ZigBeeNetworkAddress">
    <description>
      The ZigBee 16-bit network address (NWK) as defined in
      {{bibref|ZigBee2007}}. The address is assigned to a device by the network
      layer and used by the network layer for routing messages between devices.
    </description>
    <string>
      <size maxLength="4"/>
      <pattern value=""/>
      <pattern value="([0-9A-Fa-f]){4}"/>
    </string>
  </dataType>

  <dataType name="UERComplex">
    <description>
      Pair of 32-bit signed integers a(i),b(i) with each pair representing a
      complex component of the uncalibrated echo response (UER);

      # Real UER component, a(i)

      # Imaginary UER component, b(i)

      for values of i starting at i=0. Both values are represented as signed
      integers.

      The interpretation of the UER value is as defined in
      {{bibref|G.996.2|Clause A.2.2.1}}.
    </description>
    <list minItems="2" maxItems="2"/>
    <int/>
  </dataType>

  <dataType name="PSDBreakPointIndexAndLevel">
    <description>
      # the Power Spectral Density (PSD) breakpoint sub-carrier index in the
        range [0:49152] with Df = 4.3125 kHz frequency spacing, and

      # the value of the level of the PSD at this sub-carrier expressed in
        ''0.1 dBm/Hz'' with an offset of -200 dBm/Hz. The range of valid values
        for PSD is -30 to -200 dBm/Hz.

      Both values are represented as unsignedInt.
    </description>
    <list minItems="2" maxItems="2"/>
    <unsignedInt/>
  </dataType>

  <dataType name="SELTPAttenuationCharacteristicsIndexAndTFlog">
    <description>
      # The paired frequency spacing index in the range [0:8191], and

      # The transfer function log value, i.e. [i, TFlog(i *
        {{param|TFlogGroupSize}} * Df)], where the reference frequency spacing
        Df = 4.3125 kHz, the index i valid range is 0 to 8191, and TFlog(i *
        {{param|TFlogGroupSize}} * Df) spans a range from +6.0 dB down to -96.2
        dB with units of 0.1 dB.

      Both values are represented as unsignedInt.
    </description>
    <list minItems="2" maxItems="2"/>
    <unsignedInt/>
  </dataType>

  <dataType name="TenthdBmV">
    <description>
      This data type represents power levels that are normally expressed in
      dBmV. Units are in tenths of a dBmV; for example, 5.1 dBmV will be
      represented as 51.
    </description>
    <int/>
  </dataType>

  <dataType name="TenthdB">
    <description>
      This data type represents power levels that are normally expressed in dB.
      Units are in tenths of a dB; for example, 5.1 dB will be represented as
      51.
    </description>
    <int/>
  </dataType>

  <dataType name="DocsisUpstreamType">
    <description>
      Indicates the DOCSIS Upstream Channel Type.
    </description>
    <string>
      <enumeration value="Unknown" code="0">
        <description>Information not available</description>
      </enumeration>
      <enumeration value="TDMA" code="1">
        <description>Time Division Multiple Access</description>
      </enumeration>
      <enumeration value="ATDMA" code="2">
        <description>Advanced Time Division Multiple Access</description>
      </enumeration>
      <enumeration value="SCDMA" code="3">
        <description>Synchronous Code Division Multiple Access</description>
      </enumeration>
      <enumeration value="TDMAAndATDMA" code="4">
        <description>
          Simultaneous support of TDMA and A-TDMA modes
        </description>
      </enumeration>
    </string>
  </dataType>

  <dataType name="DocsEqualizerData">
    <description>
      This data type represents the equalizer data as measured at the receiver
      interface. The format of the equalizer follows the structure of the
      Transmit Equalization Adjust RNG-RSP TLV of DOCSIS RFI v2.0.

      The equalizer coefficients are considered signed 16-bit integers in the
      range from -32768 (0x8000) to 32767 (0x7FFF).

      DOCSIS specifications require up to a maximum of 64 equalizer taps (n +
      m); therefore, this object size can be up to 260 bytes (4 + 4x64). The
      minimum object size (other than zero) for a t-spaced tap with a minimum
      of 8 symbols will be 36 (4 + 4x8).

      See {{bibref|CM-SP-RFIv2.0|Figure 8-23}}.
    </description>
    <hexBinary>
      <size minLength="0" maxLength="0"/>
      <size minLength="36" maxLength="260"/>
    </hexBinary>
  </dataType>

  <dataType name="CmRegState">
    <description>
      This data type defines the CM connectivity state as reported by the CM.

      {{enum}}

      See {{bibref|CM-SP-MULPIv3.0}}, Cable Modem - CMTS Interaction.
    </description>
    <string>
      <enumeration value="Other" code="1">
        <description>indicates any state not described below</description>
      </enumeration>
      <enumeration value="NotReady" code="2">
        <description>
          indicates that the CM has not started the registration process yet
        </description>
      </enumeration>
      <enumeration value="NotSynchronized" code="3">
        <description>
          indicates that the CM has not initiated or completed the
          synchronization of the downstream physical layer
        </description>
      </enumeration>
      <enumeration value="PhySynchronized" code="4">
        <description>
          indicates that the CM has completed the synchronization of the
          downstream physical layer
        </description>
      </enumeration>
      <enumeration value="UsParametersAcquired" code="5">
        <description>
          indicates that the CM has completed the upstream parameters
          acquisition or have completed the downstream and upstream service
          groups resolution, whether the CM is registering in a pre-3.0 or a
          3.0 CMTS
        </description>
      </enumeration>
      <enumeration value="RangingComplete" code="6">
        <description>
          indicates that the CM has completed initial ranging and received a
          Ranging Status of success from the CMTS in the RNG-RSP message
        </description>
      </enumeration>
      <enumeration value="DHCPv4Complete" code="7">
        <description>
          indicates that the CM has received a DHCPv4 ACK message from the CMTS
        </description>
      </enumeration>
      <enumeration value="ToDEstablished" code="8">
        <description>
          indicates that the CM has successfully acquired time of day. If the
          ToD is acquired after the CM is operational, this value should not be
          reported
        </description>
      </enumeration>
      <enumeration value="SecurityEstablished" code="9">
        <description>
          indicates that the CM has successfully completed the BPI
          initialization process
        </description>
      </enumeration>
      <enumeration value="ConfigFileDownloadComplete" code="10">
        <description>
          indicates that the CM has completed the config file download process
        </description>
      </enumeration>
      <enumeration value="RegistrationComplete" code="11">
        <description>
          indicates that the CM has successfully completed the Registration
          process with the CMTS
        </description>
      </enumeration>
      <enumeration value="Operational" code="12">
        <description>
          indicates that the CM has completed all necessary initialization
          steps and is operational
        </description>
      </enumeration>
      <enumeration value="AccessDenied" code="13">
        <description>
          indicates that the CM has received a registration aborted
          notification from the CMTS
        </description>
      </enumeration>
      <enumeration value="EAEInProgress" code="14">
        <description>
          indicates that the CM has sent an Auth Info message for EAE
        </description>
      </enumeration>
      <enumeration value="DHCPv4InProgress" code="15">
        <description>
          indicates that the CM has sent a DHCPv4 DISCOVER to gain IP
          connectivity
        </description>
      </enumeration>
      <enumeration value="DHCPv6InProgress" code="16">
        <description>
          indicates that the CM has sent an DHCPv6 Solicit message
        </description>
      </enumeration>
      <enumeration value="DHCPv6Complete" code="17">
        <description>
          indicates that the CM has received a DHCPv6 Reply message from the
          CMTS
        </description>
      </enumeration>
      <enumeration value="RegistrationInProgress" code="18">
        <description>
          indicates that the CM has sent a Registration Request (REG-REQ or
          REG-REQ-MP)
        </description>
      </enumeration>
      <enumeration value="BPIInit" code="19">
        <description>
          indicates that the CM has started the BPI initialization process as
          indicated in the CM config file. If the CM already performed EAE,
          this state is skipped by the CM
        </description>
      </enumeration>
      <enumeration value="ForwardingDisabled" code="20">
        <description>
          indicates that the registration process was completed, but the
          network access option in the received configuration file prohibits
          forwarding
        </description>
      </enumeration>
      <enumeration value="DsTopologyResolutionInProgress" code="21">
        <description>
          indicates that the CM is attempting to determine its MD-DS-SG
        </description>
      </enumeration>
      <enumeration value="RangingInProgress" code="22">
        <description>
          indicates that the CM has initiated the ranging process
        </description>
      </enumeration>
      <enumeration value="RFMuteAll" code="23">
        <description>
          indicates that the CM is instructed to mute all channels in the
          CM-CTRL-REQ message from CMTS
        </description>
      </enumeration>
    </string>
  </dataType>

  <dataType name="AmplitudeData">
    <description>
      This data type represents a sequence of spectral amplitudes. Each
      spectral amplitude value corresponds to a bin. The format of the bin
      measurement is as follows.

      Sequence of:

      : 4 bytes: ChCenterFreq

      :: The center frequency of the upstream channel.

      : 4 bytes: FreqSpan

      :: The width in Hz of the band across which the spectral amplitudes
         characterizing the channel are measured.

      : 4 bytes: NumberOfBins

      :: The number of data points or bins that compose the spectral data. The
         leftmost bin corresponds to the lower band edge, the rightmost bin
         corresponds to the upper band edge, and the middle bin center is
         aligned with the center frequency of the analysis span.

      : 4 bytes:

      :: BinSpacing The frequency separation between adjacent bin centers. It
         is derived from the frequency span and the number of bins or data
         points. The bin spacing is computed as:

      ::: BinSpacing = FrequencySpan/(NumberOfBins -1)

      ::The larger the number of bins the finer the resolution.

      : 4 bytes: ResolutionBW

      :: The resolution bandwidth or equivalent noise bandwidth of each bin. If
         spectral windowing is used (based on vendor implementation), the bin
         spacing and resolution bandwidth would not generally be the same.

      : n bytes: Amplitude (2 bytes * NumberOfBins)

      :: A sequence of two byte elements. Each element represents the spectral
         amplitudes in relation to the expected received signal power of a bin,
         in units of 0.01dB. That is, a test CMTS input signal with square-root
         raised-cosine spectrum, bandwidth equal to the expected received
         signal bandwidth, and power equal to the expected received signal
         power, which is present for the entire spectrum sampling period, will
         exhibit a spectrum measurement of 0 dB average power in each bin of
         the signal passband. Each bin element amplitude value format is 2's
         complement which provides a range of -327.68 dB to 327.67 dB amplitude
         value for the bin measurement.
    </description>
    <hexBinary>
      <size minLength="0" maxLength="0"/>
      <size minLength="2" maxLength="4116"/>
    </hexBinary>
  </dataType>

  <dataType name="SpectrumAnalysisWindowFunction">
    <description>
      This object controls the windowing function which will be used when
      performing the discrete Fourier transform for the analysis. Note that all
      window functions may not be supported by all devices. If an attempt is
      made to set the object to an unsupported window function, an error of
      inconsistentValue will be returned.
    </description>
    <string>
      <enumeration value="Other" code="0"/>
      <enumeration value="Hann" code="1"/>
      <enumeration value="BlackmanHarris" code="2"/>
      <enumeration value="Rectangular" code="3"/>
      <enumeration value="Hamming" code="4"/>
      <enumeration value="FlatTop" code="5"/>
      <enumeration value="Gaussian" code="6"/>
      <enumeration value="Chebyshev" code="7"/>
    </string>
  </dataType>

  <dataType name="TLV8">
    <description>
      This data type represents a single TLV encoding. This first octet
      represents the Type of the TLV. The second octet represents an unsigned
      8-bit Length of the subsequent Value part of the TLV. The remaining
      octets represent the value. The Value could be an atomic value or a
      sequence of one or more sub-TLVs.

      See {{bibref|CM-SP-MULPIv3.0}}, Common Radio Frequency Interface
      Encodings Annex.
    </description>
    <hexBinary>
      <size minLength="0" maxLength="0"/>
      <size minLength="2" maxLength="255"/>
    </hexBinary>
  </dataType>

  <dataType name="RangingState">
    <description>
      This data type defines the CM ranging state as reported by the CMTS. The
      enumerated values associated with the RangingState are:

      {{enum}}

      See {{bibref|CM-SP-MULPIv3.0}}, Cable Modem - CMTS Interaction.
    </description>
    <string>
      <enumeration value="Other" code="1">
        <description>indicates any state not described below</description>
      </enumeration>
      <enumeration value="Aborted" code="2">
        <description>
          indicates that the CMTS has sent a ranging abort
        </description>
      </enumeration>
      <enumeration value="RetriesExceeded" code="3">
        <description>
          indicates that the CM ranging retry limit has exceeded
        </description>
      </enumeration>
      <enumeration value="Success" code="4">
        <description>
          indicates that the CMTS has sent a ranging success in the ranging
          response
        </description>
      </enumeration>
      <enumeration value="Continue" code="5">
        <description>
          indicates that the CMTS has sent a ranging continue in the ranging
          response
        </description>
      </enumeration>
      <enumeration value="TimeoutT4" code="6">
        <description>
          indicates that the T4 timer expired on the CM
        </description>
      </enumeration>
    </string>
  </dataType>

  <dataType name="MocaChannelMask">
    <description>
      Represents one or more MoCA channel RF center frequencies using a
      hexadecimal encoded 64-bit mask.

      Bit 63 (the leftmost bit of the leftmost character) is the most
      significant bit (highest frequency), and bit 0 (the rightmost bit of the
      rightmost character) is the least significant bit (lowest frequency). Not
      all bits are valid MoCA channels.

      Each bit represents 25 MHz of spectrum, but the mapping from bits to
      frequencies varies with the MoCA version:

      * MoCA 1.0 and MoCA 1.1: bits 63 through 32 are not used, bit 31
        represents 1575 MHz and bit 0 represents 800 MHz

      * MoCA 2.0 and MoCA 2.5: bit 63 represents 1975 MHz and bit 0 represents
        400 MHz

      For example, a MoCA 1.0 or MoCA 1.1 interface would use
      0x000000001FFFC000 to represent 1150 MHz through 1500 MHz.

      Note that the MoCA version is indicated by the {{param|HighestVersion}}
      parameter.
    </description>
    <hexBinary>
      <size minLength="8" maxLength="8"/>
    </hexBinary>
  </dataType>

  <dataType name="MocaNodeID">
    <description>
      Represents a MoCA Node ID.

      * MoCA 1.0 network can have a maximum of 8 MoCA Nodes, so Node ID is 0 to
        7.

      * MoCA 1.1, MoCA 2.0, or MoCA 2.5 network can have a maximum of 16 MoCA
        Nodes, so Node ID is 0 to 15.
    </description>
    <unsignedInt>
      <range minInclusive="0" maxInclusive="15"/>
    </unsignedInt>
  </dataType>

  <dataType name="MocaPhyRate">
    <description>
      Represents the transmit PHY rate in Mbps.
    </description>
    <unsignedInt>
      <range minInclusive="0" maxInclusive="2048"/>
    </unsignedInt>
  </dataType>

  <dataType name="MocaMacRate">
    <description>
      Represents the MAC throughput in Kbps.
    </description>
    <unsignedInt/>
  </dataType>

  <dataType name="MocaDB">
    <description>
      Represents one decibel or 1 dB.
    </description>
    <unsignedInt/>
  </dataType>

  <dataType name="MocaDBm">
    <description>
      Represents a measure of power in mW expressed in decibels, and calculated
      as follows:

          power = 10*log10( Vrms^2 / R * 1000 )

      where Vrms is the root-mean-square Voltage of the received waveform and R
      is 75 ohms.
    </description>
    <int/>
  </dataType>

  <dataType name="MocaScMod">
    <description>
      Represents the subcarrier modulation.

      Binary string array (array of two hexadecimal characters) with 1 byte for
      each subcarrier. The value of each byte represents the subcarrier
      modulation for the corresponding subcarrier.

      See {{bibref|MoCAv2.0|section 14.3.6.3}} and {{bibref|MOCA20-MIB|Appendix
      A}} for the encoding of this parameter.
    </description>
    <hexBinary/>
  </dataType>

  <dataType name="MocaBand">
    <description>
      Represents the MoCA Bands and sub-bands the device is configured to
      operate in or that the device supports. {{enum}}

      See {{bibref|MoCAv2.0|section 15}}.
    </description>
    <list/>
    <string>
      <enumeration value="reserved" access="readOnly" code="0"/>
      <enumeration value="bandFCBL" code="1"/>
      <enumeration value="bandFSAT" code="2"/>
      <enumeration value="bandE" code="3"/>
      <enumeration value="bandExD" code="4"/>
      <enumeration value="bandDH" code="5"/>
      <enumeration value="bandDL" code="6"/>
      <enumeration value="noBand" code="7"/>
    </string>
  </dataType>

  <dataType name="MocaPowerState">
    <description>
      Represents the Power State defined by the MoCA2.0 specification.

      {{enum}}

      See {{bibref|MoCAv2.0|section 12}}.
    </description>
    <string>
      <enumeration value="m0Active" code="0">
        <description>Power State M0: Active.</description>
      </enumeration>
      <enumeration value="m1LowPowerIdle" code="1">
        <description>Power State M1: Low Power Idle.</description>
      </enumeration>
      <enumeration value="m2Standby" code="2">
        <description>Power State M2: Standby.</description>
      </enumeration>
      <enumeration value="m3Sleep" code="3">
        <description>Power State M3: Sleep.</description>
      </enumeration>
    </string>
  </dataType>

  <dataType name="MocaFlowIngrClassRule">
    <description>
      Represents the MoCA 2.0 PQOS Ingress Classification Rule.
    </description>
    <string>
      <enumeration value="ruleDAVLANtag4or5" code="0"/>
      <enumeration value="ruleDAonly" code="4"/>
      <enumeration value="ruleDAandDSCPnoVLAN" code="5"/>
      <enumeration value="ruleDAandVLANignoreDSCP" code="6"/>
      <enumeration value="ruleDAandVLANorDSCP" code="7"/>
    </string>
  </dataType>

  <dataType name="MocaChannelIndex">
    <description>
      Represents the MoCA 2.0 primary or secondary channel, or MoCA 2.5 first,
      second, third, fourth, or fifth channel.
    </description>
    <string>
      <enumeration value="primary" code="1"/>
      <enumeration value="secondary" code="2"/>
      <enumeration value="m25first" code="3"/>
      <enumeration value="m25second" code="4"/>
      <enumeration value="m25third" code="5"/>
      <enumeration value="m25fourth" code="6"/>
      <enumeration value="m25fifth" code="7"/>
    </string>
  </dataType>

  <dataType name="MocaPrivacy">
    <description>
      Represents a type of MoCA Privacy.
    </description>
    <string>
      <enumeration value="mocaReserved5" code="0"/>
      <enumeration value="mocaReserved4" code="1"/>
      <enumeration value="mocaReserved3" code="2"/>
      <enumeration value="mocaReserved2" code="3"/>
      <enumeration value="mocaReserved1" code="4"/>
      <enumeration value="moca2EnhancedPrivacy" code="5"/>
      <enumeration value="moca20Privacy" code="6"/>
      <enumeration value="moca1Privacy" code="7"/>
    </string>
  </dataType>

  <dataType name="RowStatus">
    <description>
      Cut-down version of SNMP RowStatus that supports only its "status"
      values, not its "control" values.
    </description>
    <string>
      <enumeration value="active" code="1">
        <description>
          The row is available for use by the managed device.
        </description>
      </enumeration>
      <enumeration value="notInService" code="2">
        <description>
          The row exists in the Agent, but is unavailable for use by the
          managed device (see NOTE below); "notInService" has no implication
          regarding the internal consistency of the row, availability of
          resources, or consistency with the current state of the managed
          device.
        </description>
      </enumeration>
      <enumeration value="notReady" code="3">
        <description>
          The row exists in the Agent, but is missing information necessary in
          order to be available for use by the managed device, i.e., one or
          more required parameter in the row have not been populated.
        </description>
      </enumeration>
      <enumeration value="createAndGo" code="4">
        <description>Not used.</description>
      </enumeration>
      <enumeration value="createAndWait" code="5">
        <description>Not used.</description>
      </enumeration>
      <enumeration value="destroy" code="6">
        <description>Not used.</description>
      </enumeration>
    </string>
  </dataType>

  <dataType name="PSMBreakPointIndexAndLevel">
    <description>
      # The PSM breakpoint sub-carrier index in the range [0:4095], and

      # the value of the level of the PSM at this sub-carrier expressed in
        ''0.1 dBm/Hz'' with an offset of -140 dBm/Hz.

      Both values are represented as unsignedInt.

      {{bibref|G.9964|Clause 5.2}} defines limits on PSM breakpoint levels.
    </description>
    <list minItems="2" maxItems="2"/>
    <unsignedInt/>
  </dataType>

  <dataType name="ThreadLinkQuality">
    <description>
      Encoded intervals representation of the Thread link quality: * 3 (&gt; 20
      dB) * 2 (&gt; 10 dB) * 1 (&gt; 2 dB) * 0 (&lt;= 2 dB)
    </description>
    <unsignedInt>
      <range minInclusive="0" maxInclusive="3"/>
    </unsignedInt>
  </dataType>

  <dataType name="SST">
    <description>
      Service Slice Type (SST). {{enum}}

      See {{bibref|3GPP-TS.23.501|Clause 5.15.2.2}}.
    </description>
    <string>
      <enumeration value="eMBB">
        <description>5G Enhanced Mobile Broadband</description>
      </enumeration>
      <enumeration value="URLLC">
        <description>Ultra-Reliable Low Latency Communications</description>
      </enumeration>
      <enumeration value="MIoT">
        <description>Massive IoT</description>
      </enumeration>
      <enumeration value="V2X">
        <description>Vehicle to Everything</description>
      </enumeration>
    </string>
  </dataType>

  <bibliography>
    <reference id="3GPP-HSPA">
      <name>High Speed Packet data Access (HSPA)</name>
      <organization>3GPP</organization>
      <hyperlink>
        https://www.3gpp.org/technologies/keywords-acronyms/99-hspa
      </hyperlink>
    </reference>
    <reference id="3GPP-TS.23.003">
      <name>3GPP TS 23.003</name>
      <title>Numbering, addressing and identification</title>
      <organization>3GPP CT WG4</organization>
      <hyperlink>https://www.3gpp.org/ftp/Specs/html-info/23003.htm</hyperlink>
    </reference>
    <reference id="3GPP-TS.23.501">
      <name>3GPP TS 23.501</name>
      <title>System architecture for the 5G System (5GS); Stage 2</title>
      <organization>3GPP SA WG2</organization>
      <hyperlink>https://www.3gpp.org/ftp/Specs/html-info/23501.htm</hyperlink>
    </reference>
    <reference id="3GPP-TS.24.008">
      <name>3GPP TS 24.008</name>
      <title>
        Mobile radio interface Layer 3 specification; Core network protocols;
        Stage 3
      </title>
      <organization>3GPP CT WG1</organization>
      <hyperlink>https://www.3gpp.org/ftp/Specs/html-info/24008.htm</hyperlink>
    </reference>
    <reference id="3GPP-TS.24.301">
      <name>3GPP TS 24.301</name>
      <title>
        Non-Access-Stratum (NAS) protocol for Evolved Packet System (EPS);
        Stage 3
      </title>
      <organization>3GPP CT WG1</organization>
      <hyperlink>https://www.3gpp.org/ftp/Specs/html-info/24301.htm</hyperlink>
    </reference>
    <reference id="3GPP-TS.24.501">
      <name>3GPP TS 24.501</name>
      <title>
        Non-Access-Stratum (NAS) protocol for 5G System (5GS); Stage 3
      </title>
      <organization>3GPP CT WG1</organization>
      <hyperlink>https://www.3gpp.org/ftp/Specs/html-info/24501.htm</hyperlink>
    </reference>
    <reference id="3GPP-TS.24.526">
      <name>3GPP TS 24.526</name>
      <title>User Equipment (UE) policies for 5G System (5GS); Stage 3</title>
      <organization>3GPP CT WG1</organization>
      <hyperlink>https://www.3gpp.org/ftp/Specs/html-info/24526.htm</hyperlink>
    </reference>
    <reference id="3GPP-TS.25.171">
      <name>3GPP TS 25.171</name>
      <title>
        Requirements for support of Assisted Global Positioning System (A-GPS)
      </title>
      <organization>3GPP RAN WG4</organization>
      <hyperlink>https://www.3gpp.org/ftp/Specs/html-info/25171.htm</hyperlink>
    </reference>
    <reference id="3GPP-TS.27.007">
      <name>3GPP TS 24.007</name>
      <title>AT command set for User Equipment (UE)</title>
      <organization>3GPP CT WG1</organization>
      <category>Technical specification</category>
      <hyperlink>https://www.3gpp.org/ftp/Specs/html-info/24007.htm</hyperlink>
    </reference>
    <reference id="3GPP-TS.31.102">
      <name>3GPP TS 31.102</name>
      <title>Characteristics of the USIM application</title>
      <organization>3GPP</organization>
      <hyperlink>https://www.3gpp.org/ftp/Specs/html-info/31102.htm</hyperlink>
    </reference>
    <reference id="CM-SP-RFIv2.0">
      <name>CM-SP-RFIv2.0</name>
      <title>
        Data-Over-Cable Service Interface Specifications: Radio Frequency
        Interface Specification
      </title>
      <organization>CableLabs</organization>
      <date>April 2009</date>
      <hyperlink>https://www.cablelabs.com/specifications</hyperlink>
    </reference>
    <reference id="CM-SP-MULPIv3.0">
      <name>CM-SP-MULPIv3.0</name>
      <title>
        DOCSIS 3.0 MAC and Upper Layer Protocols Interface Specification
      </title>
      <organization>CableLabs</organization>
      <date>December 2017</date>
      <hyperlink>https://www.cablelabs.com/specifications</hyperlink>
    </reference>
    <reference id="CM-SP-OSSIv3.0">
      <name>CM-SP-OSSIv3.0</name>
      <title>
        DOCSIS 3.0 Operations Support System Interface Specification
      </title>
      <organization>CableLabs</organization>
      <date>December 2017</date>
      <hyperlink>https://www.cablelabs.com/specifications</hyperlink>
    </reference>
    <reference id="CM-SP-CM-OSSIv3.1">
      <name>CM-SP-CM-OSSIv3.1</name>
      <title>
        Cable Modem Operations Support System Interface Specification
      </title>
      <organization>CableLabs</organization>
      <date>October 2020</date>
      <hyperlink>https://www.cablelabs.com/specifications</hyperlink>
    </reference>
    <reference id="OUI">
      <name>Organizationally Unique Identifiers (OUIs)</name>
      <hyperlink>https://standards.ieee.org/faqs/regauth</hyperlink>
    </reference>
    <reference id="IEEE_EUI64">
      <name>
        Guidelines for 64-bit Global Identifier (EUI-64) Registration Authority
      </name>
      <title>
        Guidelines for 64-bit Global Identifier (EUI-64) Registration Authority
      </title>
      <organization>IEEE</organization>
      <date>March 1997</date>
      <hyperlink>
        https://standards.ieee.org/regauth/oui/tutorials/EUI64.html
      </hyperlink>
    </reference>
    <reference id="802.1AB-2009">
      <name>IEEE Std 802.1AB-2009</name>
      <title>Station and Media Access Control Connectivity Discovery</title>
      <organization>IEEE</organization>
      <date>2009</date>
      <hyperlink>
        https://standards.ieee.org/getieee802/download/802.1AB-2009.pdf
      </hyperlink>
    </reference>
    <reference id="802.1ad-2005">
      <name>IEEE Std 802.1ad-2005</name>
      <title>
        Virtual Bridged Local Area Networks Amendment 4: Provider Bridges
      </title>
      <organization>IEEE</organization>
      <date>May 2005</date>
      <hyperlink>
        https://standards.ieee.org/getieee802/download/802.1ad-2005.pdf
      </hyperlink>
    </reference>
    <reference id="802.1AX-2014">
      <name>IEEE Std 802.1AX-2014</name>
      <title>
        IEEE Standard for Local and metropolitan area networks - Link
        Aggregation
      </title>
      <organization>IEEE</organization>
      <date>2014</date>
      <hyperlink>
        https://ieeexplore.ieee.org/servlet/opac?punumber=6997981
      </hyperlink>
    </reference>
    <reference id="802.1D-2004">
      <name>IEEE Std 802.1D-2004</name>
      <title>Media Access Control (MAC) Bridges</title>
      <organization>IEEE</organization>
      <date>2004</date>
      <hyperlink>
        https://standards.ieee.org/getieee802/download/802.1D-2004.pdf
      </hyperlink>
    </reference>
    <reference id="802.1Q-2005">
      <name>IEEE Std 802.1Q-2005</name>
      <title>Virtual Bridged Local Area Networks</title>
      <organization>IEEE</organization>
      <date>2006</date>
      <hyperlink>
        https://standards.ieee.org/getieee802/download/802.1Q-2005.pdf
      </hyperlink>
    </reference>
    <reference id="802.1Q-2011">
      <name>IEEE Std 802.1Q-2011</name>
      <title>MAC Bridges and Virtual Bridge Local Area Networks</title>
      <organization>IEEE</organization>
      <date>2011</date>
      <hyperlink>
        https://standards.ieee.org/getieee802/download/802.1Q-2011.pdf
      </hyperlink>
    </reference>
    <reference id="802.1x-2004">
      <name>IEEE Std 802.1x-2004</name>
      <title>
        Standards for Local and Metropolitan Area Networks: Port based Network
        Access Control
      </title>
      <organization>IEEE</organization>
      <date>2004</date>
      <hyperlink>
        https://standards.ieee.org/getieee802/download/802.1X-2004.pdf
      </hyperlink>
    </reference>
    <reference id="802.3-2015">
      <name>IEEE Std 802.3-2015</name>
      <title>IEEE Standard for Ethernet</title>
      <organization>IEEE</organization>
      <date>2015</date>
      <hyperlink>
        https://ieeexplore.ieee.org/servlet/opac?punumber=7428774
      </hyperlink>
    </reference>
    <reference id="802.3-2012_section6">
      <name>IEEE 802.3-2012 - Section Six</name>
      <title>IEEE Standard for Ethernet - Section Six</title>
      <organization>IEEE</organization>
      <date>December 2012</date>
      <hyperlink>
        https://standards.ieee.org/getieee802/download/802.3-2012_section6.pdf
      </hyperlink>
    </reference>
    <reference id="802.11-2007">
      <name>IEEE Std 802.11-2007</name>
      <title>
        Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY)
        Specifications
      </title>
      <organization>IEEE</organization>
      <date>2007</date>
      <hyperlink>
        https://standards.ieee.org/getieee802/download/802.11-2007.pdf
      </hyperlink>
    </reference>
    <reference id="802.11-2012">
      <name>IEEE Std 802.11-2012</name>
      <title>
        Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY)
        Specifications
      </title>
      <organization>IEEE</organization>
      <date>March 2012</date>
      <hyperlink>
        https://standards.ieee.org/getieee802/download/802.11-2012.pdf
      </hyperlink>
    </reference>
    <reference id="802.11-2016">
      <name>IEEE Std 802.11-2016</name>
      <title>
        Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY)
        Specifications
      </title>
      <organization>IEEE</organization>
      <date>December 2016</date>
      <hyperlink>https://ieeexplore.ieee.org/document/7786995</hyperlink>
    </reference>
    <reference id="802.11-2020">
      <name>IEEE Std 802.11-2020</name>
      <title>
        Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY)
        Specifications
      </title>
      <organization>IEEE</organization>
      <date>December 2020</date>
      <hyperlink>https://ieeexplore.ieee.org/document/9363693</hyperlink>
    </reference>
    <reference id="802.11a-1999">
      <name>IEEE Std 802.11a-1999</name>
      <title>High-speed Physical Layer in the 5 GHz band</title>
      <organization>IEEE</organization>
      <date>1999</date>
      <hyperlink>
        https://standards.ieee.org/getieee802/download/802.11a-1999.pdf
      </hyperlink>
    </reference>
    <reference id="802.11ac-2013">
      <name>IEEE Std 802.11ac-2013</name>
      <title>
        Enhancements for Very High Throughput for Operation in Bands below 6
        GHz
      </title>
      <organization>IEEE</organization>
      <date>December 2013</date>
      <hyperlink>https://www.ieee802.org/11/Reports/tgac_update.htm</hyperlink>
    </reference>
    <reference id="802.11ax">
      <name>IEEE Std 802.11ax</name>
      <title>Enhancements for High Efficiency WLAN</title>
      <organization>IEEE</organization>
      <date>May 2021</date>
      <hyperlink>
        https://standards.ieee.org/standard/802_11ax-2021.html
      </hyperlink>
    </reference>
    <reference id="802.11be">
      <name>IEEE Std 802.11be</name>
      <title>
        Enhancements for Exteremely High Throughput (EHT) WLAN - Draft
      </title>
      <organization>IEEE</organization>
      <date>March 2019</date>
      <hyperlink>https://standards.ieee.org/ieee/802.11be/7516/</hyperlink>
    </reference>
    <reference id="802.11b-1999">
      <name>IEEE Std 802.11b-1999</name>
      <title>Higher Speed Physical Layer Extension in the 2.4 GHz band</title>
      <organization>IEEE</organization>
      <date>1999</date>
      <hyperlink>
        https://standards.ieee.org/getieee802/download/802.11b-1999.pdf
      </hyperlink>
    </reference>
    <reference id="802.11g-2003">
      <name>IEEE Std 802.11g-2003</name>
      <title>Further Higher Data Rate Extension in the 2.4 GHz Band</title>
      <organization>IEEE</organization>
      <date>2003</date>
      <hyperlink>
        https://standards.ieee.org/getieee802/download/802.11g-2003.pdf
      </hyperlink>
    </reference>
    <reference id="802.11h-2003">
      <name>IEEE Std 802.11h-2003</name>
      <title>Spectrum and Transmit Power Management Extensions</title>
      <organization>IEEE</organization>
      <date>2003</date>
      <hyperlink>
        https://standards.ieee.org/getieee802/download/802.11h-2003.pdf
      </hyperlink>
    </reference>
    <reference id="802.11k">
      <name>IEEE Std 802.11k</name>
      <title>Radio Resource Measurement of Wireless LANs</title>
      <organization>IEEE</organization>
      <date>May 2008</date>
      <hyperlink>
        https://standards.ieee.org/standard/802_11k-2008.html
      </hyperlink>
    </reference>
    <reference id="802.11n-2009">
      <name>IEEE Std 802.11n-2009</name>
      <title>Amendment 5: Enhancements for Higher Throughput</title>
      <organization>IEEE</organization>
      <date>2009</date>
      <hyperlink>
        https://ieeexplore.ieee.org/xpl/freeabs_all.jsp?reload=true&amp;arnumber=5307322
      </hyperlink>
    </reference>
    <reference id="802.15.4-2020">
      <name>Thread Specification</name>
      <title>IEEE Standard for Low-Rate Wireless Networks</title>
      <organization>IEEE</organization>
      <date>July 2020</date>
      <hyperlink>https://standards.ieee.org/ieee/802.15.4/7029/</hyperlink>
    </reference>
    <reference id="IEEE1905.1a">
      <name>IEEE 1905.1a</name>
      <title>
        IEEE Std 1905.1a, Convergent Digital Home Network for Heterogeneous
        Technologies Amendment 1: Support of new MAC/PHYs and enhancements,
        IEEE, December 2014.
      </title>
      <organization>IEEE</organization>
      <date>December 2014</date>
      <hyperlink>https://www.IEEE.org</hyperlink>
    </reference>
    <reference id="DVB-TS.102.824">
      <name>TS 102 824</name>
      <title>
        Digital Video Broadcasting (DVB);Remote Management and Firmware Update
        System for DVB IP Services
      </title>
      <organization>ETSI</organization>
      <date>July 2008</date>
      <hyperlink>
        https://webapp.etsi.org/workprogram/Report_WorkItem.asp?WKI_ID=27769
      </hyperlink>
    </reference>
    <reference id="ETSIBRAN">
      <name>ETSI EN 301 893</name>
      <title>
        Broadband Radio Access Networks (BRAN); 5 GHz high performance RLAN;
        Harmonized EN covering the essential requirements of article 3.2 of the
        RTTE Directive
      </title>
      <organization>ETSI</organization>
      <hyperlink>
        https://www.etsi.org/deliver/etsi_en/301800_301899/301893/01.08.01_60/en_301893v010801p.pdf
      </hyperlink>
    </reference>
    <reference id="ETSIM2MFA">
      <name>ETSI TS 102 690 v1.1.6</name>
      <title>
        Machine-to-Machine Communications (M2M Functional Architecture)
      </title>
      <organization>ETSI</organization>
      <date>June 2012</date>
      <hyperlink>
        https://docbox.etsi.org/M2M/Open/Latest_Drafts/00002ed121v116.pdf
      </hyperlink>
    </reference>
    <reference id="ETSIM2MInterfaces">
      <name>ETSI TS 102 921 v1.1.6</name>
      <title>M2M mIa, dIa and mId Interfaces</title>
      <organization>ETSI</organization>
      <date>August 2012</date>
      <hyperlink>
        https://docbox.etsi.org/M2M/Open/Latest_Drafts/00010ed121v116.pdf
      </hyperlink>
    </reference>
    <reference id="ITU-E.118">
      <name>ITU E.118</name>
      <title>The international telecommunication charge card</title>
      <organization>International Telecommunication Union</organization>
      <date>May 2006</date>
      <hyperlink>https://www.itu.int/rec/T-REC-E.118-200605-I/en</hyperlink>
    </reference>
    <reference id="ITU-E.164">
      <name>ITU E.164</name>
      <title>The international public telecommunication numbering plan</title>
      <organization>International Telecommunication Union</organization>
      <date>October 2010</date>
      <hyperlink>https://www.itu.int/rec/T-REC-E.164-201011-I/en</hyperlink>
    </reference>
    <reference id="G.984.3">
      <name>G.984.3</name>
      <title>
        Gigabit-capable passive optical networks (G-PON): Transmission
        convergence layer specification
      </title>
      <organization>ITU-T</organization>
      <date>January 2010</date>
      <hyperlink>https://www.itu.int/rec/T-REC-G.984.3-201401-I/en</hyperlink>
    </reference>
    <reference id="G.987.3">
      <name>G.987.3</name>
      <title>
        10-Gigabit-capable passive optical networks (XG-PON): Transmission
        convergence (TC) layer specification
      </title>
      <organization>ITU-T</organization>
      <date>January 2014</date>
      <hyperlink>https://www.itu.int/rec/T-REC-G.987.3-201401-I/en</hyperlink>
    </reference>
    <reference id="G.988">
      <name>G.988</name>
      <title>ONU management and control interface (OMCI) specification</title>
      <organization>ITU-T</organization>
      <date>2010</date>
      <hyperlink>https://www.itu.int/rec/T-REC-G.988-201010-P/en</hyperlink>
    </reference>
    <reference id="G.989.3">
      <name>G.989.3</name>
      <title>
        40-Gigabit-capable passive optical networks (NG-PON2): Transmission
        convergence layer specification
      </title>
      <organization>ITU-T</organization>
      <date>May 2021</date>
      <hyperlink>https://www.itu.int/rec/T-REC-G.989.3-202105-I/en</hyperlink>
    </reference>
    <reference id="G.992.3">
      <name>G.992.3</name>
      <title>Asymmetric digital subscriber line transceivers 2 (ADSL2)</title>
      <organization>ITU-T</organization>
      <hyperlink>https://www.itu.int/rec/T-REC-G.992.3</hyperlink>
    </reference>
    <reference id="G.992.4">
      <name>G.992.4</name>
      <title>
        Splitterless asymmetric digital subscriber line transceivers 2
        (splitterless ADSL2)
      </title>
      <organization>ITU-T</organization>
      <hyperlink>https://www.itu.int/rec/T-REC-G.992.4</hyperlink>
    </reference>
    <reference id="G.992.5">
      <name>G.992.5</name>
      <title>
        Asymmetric Digital Subscriber Line (ADSL) transceivers - Extended
        bandwidth ADSL2 (ADSL2plus)
      </title>
      <organization>ITU-T</organization>
      <hyperlink>https://www.itu.int/rec/T-REC-G.992.5</hyperlink>
    </reference>
    <reference id="G.993.1">
      <name>G.993.1</name>
      <title>Very high speed digital subscriber line transceivers</title>
      <organization>ITU-T</organization>
      <hyperlink>https://www.itu.int/rec/T-REC-G.993.1</hyperlink>
    </reference>
    <reference id="G.993.2">
      <name>G.993.2</name>
      <title>
        Very high speed digital subscriber line transceivers 2 (VDSL2)
      </title>
      <organization>ITU-T</organization>
      <hyperlink>https://www.itu.int/rec/T-REC-G.993.2</hyperlink>
    </reference>
    <reference id="G.994.1">
      <name>G.994.1</name>
      <title>
        Handshake procedures for digital subscriber line (DSL) transceivers
      </title>
      <organization>ITU-T</organization>
      <hyperlink>https://www.itu.int/rec/T-REC-G.994.1</hyperlink>
    </reference>
    <reference id="G.996.2">
      <name>G.996.2</name>
      <title>
        Single-ended line testing for digital subscriber lines (DSL)
      </title>
      <organization>ITU-T</organization>
      <hyperlink>https://www.itu.int/rec/T-REC-G.996.2</hyperlink>
    </reference>
    <reference id="G.997.1">
      <name>G.997.1</name>
      <title>
        Physical layer management for digital subscriber line (DSL)
        transceivers
      </title>
      <organization>ITU-T</organization>
      <hyperlink>https://www.itu.int/rec/T-REC-G.997.1</hyperlink>
    </reference>
    <reference id="G.997.2">
      <name>G.997.2</name>
      <title>Physical layer management for FAST transceivers</title>
      <organization>ITU-T</organization>
      <date>2015</date>
      <hyperlink>https://www.itu.int/rec/T-REC-G.997.2-201505-I</hyperlink>
    </reference>
    <reference id="G.998.1">
      <name>G.998.1</name>
      <title>ATM-based Multi-Pair Bonding</title>
      <organization>ITU-T</organization>
      <date>2005</date>
      <hyperlink>https://www.itu.int/rec/T-REC-G.998.1</hyperlink>
    </reference>
    <reference id="G.998.2">
      <name>G.998.2</name>
      <title>Ethernet-based Multi-Pair Bonding</title>
      <organization>ITU-T</organization>
      <date>2005</date>
      <hyperlink>https://www.itu.int/rec/T-REC-G.998.2</hyperlink>
    </reference>
    <reference id="G.998.3">
      <name>G.998.3</name>
      <title>
        Multi-Pair Bonding Using Time-Division Inverse Multiplexing
      </title>
      <organization>ITU-T</organization>
      <date>2005</date>
      <hyperlink>https://www.itu.int/rec/T-REC-G.998.2</hyperlink>
    </reference>
    <reference id="G.9807.1">
      <name>G.9807.1</name>
      <title>
        10-Gigabit-capable symmetric passive optical network (XGS-PON)
      </title>
      <organization>ITU-T</organization>
      <date>June 2016</date>
      <hyperlink>https://www.itu.int/rec/T-REC-G.9807.1-201606-I/en</hyperlink>
    </reference>
    <reference id="G.9954">
      <name>G.9954</name>
      <title>
        Phoneline networking transceivers - Enhanced physical, media access,
        and link layer specifications (HPNA 3.0 and 3.1)
      </title>
      <organization>ITU-T</organization>
      <date>2007</date>
      <hyperlink>https://www.itu.int/rec/T-REC-G.9954/en</hyperlink>
    </reference>
    <reference id="G.9960">
      <name>G.9960</name>
      <title>
        Unified high-speed wire-line based home networking transceivers -
        System architecture and physical layer specification
      </title>
      <organization>ITU-T</organization>
      <category>G.hn series</category>
      <hyperlink>https://www.itu.int/rec/T-REC-G.9960-201006-P</hyperlink>
    </reference>
    <reference id="G.9961">
      <name>G.9961</name>
      <title>
        Unified high-speed wire-line based home networking transceivers - Data
        link layer specification
      </title>
      <organization>ITU-T</organization>
      <category>G.hn series</category>
      <hyperlink>https://www.itu.int/rec/T-REC-G.9961-201006-P</hyperlink>
    </reference>
    <reference id="G.9962">
      <name>G.9962</name>
      <title>
        Unified high-speed wire-line based home networking transceivers -
        Management specification
      </title>
      <organization>ITU-T</organization>
      <category>G.hn series</category>
      <hyperlink>https://www.itu.int/rec/T-REC-G.9962-201308-P</hyperlink>
    </reference>
    <reference id="G.9964">
      <name>G.9964</name>
      <title>
        Unified high-speed wire-line based home networking transceivers - Power
        spectral density specification
      </title>
      <organization>ITU-T</organization>
      <category>G.hn series</category>
      <hyperlink>https://www.itu.int/rec/T-REC-G.9962-201308-P</hyperlink>
    </reference>
    <reference id="G.9973">
      <name>G.9973</name>
      <title>Protocol for identifying home network topology</title>
      <organization>ITU-T</organization>
      <date>2011</date>
      <hyperlink>https://www.itu.int/rec/T-REC-G.9973-201110-I/en</hyperlink>
    </reference>
    <reference id="G.9701">
      <name>G.9701</name>
      <title>
        Fast access to subscriber terminals (G.fast)- Physical layer
        specification
      </title>
      <organization>ITU-T</organization>
      <date>2014</date>
      <hyperlink>https://www.itu.int/rec/T-REC-G.9701-201412-P</hyperlink>
    </reference>
    <reference id="ITU-X.733">
      <name>ITU X.733</name>
      <title>
        Information technology - Open Systems Interconnection - Systems
        Management: Alarm reporting function
      </title>
      <organization>International Telecommunication Union</organization>
      <date>February 1992</date>
      <hyperlink>https://www.itu.int/rec/T-REC-X.733/en</hyperlink>
    </reference>
    <reference id="IANAifType">
      <name>IANAifType</name>
      <title>IANAifType-MIB DEFINITIONS</title>
      <organization>IANA</organization>
      <date>2009</date>
      <hyperlink>
        https://www.iana.org/assignments/ianaiftype-mib/ianaiftype-mib
      </hyperlink>
    </reference>
    <reference id="IANAMauMIB">
      <name>IANAMauMIB</name>
      <title>IANA-MAU-MIB DEFINITIONS</title>
      <organization>IANA</organization>
      <date>2022</date>
      <hyperlink>
        https://www.iana.org/assignments/ianamau-mib/ianamau-mib
      </hyperlink>
    </reference>
    <reference id="IANA-ipversionnumbers">
      <name>IANA IP Version Numbers</name>
      <title>IP Version Numbers</title>
      <organization>IANA</organization>
      <hyperlink>https://www.iana.org/assignments/version-numbers</hyperlink>
    </reference>
    <reference id="IANA-protocolnumbers">
      <name>IANA Protocol Numbers</name>
      <title>Protocol Numbers</title>
      <organization>IANA</organization>
      <hyperlink>https://www.iana.org/assignments/protocol-numbers</hyperlink>
    </reference>
    <reference id="IANA-uri-schemes">
      <name>IANA Uniform Resource Identifier (URI) Schemes Registry</name>
      <title>Uniform Resource Identifier (URI) Schemes</title>
      <organization>IANA</organization>
      <hyperlink>https://www.iana.org/assignments/uri-schemes</hyperlink>
    </reference>
    <reference id="IKEv2-params">
      <name>IKEv2 Parameters</name>
      <title>Internet Key Exchange Version 2 (IKEv2) Parameters</title>
      <organization>IANA</organization>
      <hyperlink>
        https://www.iana.org/assignments/ikev2-parameters/ikev2-parameters.xml
      </hyperlink>
    </reference>
    <reference id="ISO-13818-6:1998">
      <name>ISO/IEC 13818-6:1998</name>
      <title>
        Information Technology - Generic coding of moving pictures and
        associated audio information - Part 6: Extensions for DSM-CC
      </title>
      <organization>ISO</organization>
      <date>1998</date>
      <hyperlink>
        https://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=25039
      </hyperlink>
    </reference>
    <reference id="ISO639-1">
      <name>ISO 639-1</name>
      <title>
        Codes for the representation of names of Languages - Part 1: Alpha-2
        code
      </title>
      <organization>ISO</organization>
      <date>2002</date>
      <hyperlink>https://www.iso.org/iso/language_codes</hyperlink>
    </reference>
    <reference id="ISO646-1991">
      <name>ISO/IEC 646-1991</name>
      <title>
        Information Technology - ISO 7-bit coded character set for information
        interchange
      </title>
      <organization>ISO</organization>
      <date>1991</date>
    </reference>
    <reference id="ISO3166-1">
      <name>ISO 3166-1</name>
      <title>
        Codes for the representation of names of countries and their
        subdivisions - Part 1: Country codes
      </title>
      <organization>ISO</organization>
      <date>2006</date>
      <hyperlink>https://www.iso.org/iso/country_codes.htm</hyperlink>
    </reference>
    <reference id="LMAPREG">
      <name>draft-ietf-ippm-metric-registry-12</name>
      <title>Registry for Performance Metrics</title>
      <organization>IETF</organization>
      <category>Internet Draft</category>
      <date>June 30, 2017</date>
      <hyperlink>
        https://datatracker.ietf.org/doc/html/draft-ietf-ippm-metric-registry
      </hyperlink>
    </reference>
    <reference id="PCPProxy">
      <name>RFC 7648</name>
      <title>Port Control Protocol (PCP) Proxy Function</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>September 2015</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc7648</hyperlink>
    </reference>
    <reference id="RFC792">
      <name>RFC 792</name>
      <title>Internet Control Message Protocol</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>September 1981</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc792</hyperlink>
    </reference>
    <reference id="RFC793">
      <name>RFC 793</name>
      <title>Transmission Control Protocol</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>September 1981</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc793</hyperlink>
    </reference>
    <reference id="RFC862">
      <name>RFC 862</name>
      <title>Echo Protocol</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>1983</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc862</hyperlink>
    </reference>
    <reference id="RFC959">
      <name>RFC 959</name>
      <title>File Transfer Protocol</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>1985</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc958</hyperlink>
    </reference>
    <reference id="RFC1035">
      <name>RFC 1035</name>
      <title>Domain Names - Implementation and Specification</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>1987</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc1035</hyperlink>
    </reference>
    <reference id="RFC1123">
      <name>RFC 1123</name>
      <title>Requirements for Internet Hosts -- Application and Support</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>1989</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc1123</hyperlink>
    </reference>
    <reference id="RFC1323">
      <name>RFC 1323</name>
      <title>TCP Extensions for High Performance</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>May 1992</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc1323</hyperlink>
    </reference>
    <reference id="RFC1332">
      <name>RFC 1332</name>
      <title>The PPP Internet Protocol Control Protocol (IPCP)</title>
      <organization>IETF</organization>
      <date>1992</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc1332</hyperlink>
    </reference>
    <reference id="RFC1378">
      <name>RFC 1378</name>
      <title>The PPP AppleTalk Control Protocol (ATCP)</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>1992</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc1378</hyperlink>
    </reference>
    <reference id="RFC1552">
      <name>RFC 1552</name>
      <title>
        The PPP Internetwork Packet Exchange Control Protocol (IPXCP)
      </title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>1993</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc1552</hyperlink>
    </reference>
    <reference id="RFC1661">
      <name>RFC 1661</name>
      <title>The Point-to-Point Protocol (PPP)</title>
      <organization>IETF</organization>
      <date>1994</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc1661</hyperlink>
    </reference>
    <reference id="RFC1877">
      <name>RFC 1877</name>
      <title>
        PPP Internet Protocol Control Protocol Extensions for Name Server
        Addresses
      </title>
      <organization>IETF</organization>
      <date>1995</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc1877</hyperlink>
    </reference>
    <reference id="RFC1974">
      <name>RFC 1974</name>
      <title>PPP Stac LZS Compression Protocol</title>
      <organization>IETF</organization>
      <date>1996</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc1974</hyperlink>
    </reference>
    <reference id="RFC2080">
      <name>RFC 2080</name>
      <title>RIPng for IPv6</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>1997</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc2080</hyperlink>
    </reference>
    <reference id="RFC2097">
      <name>RFC 2097</name>
      <title>The PPP NetBIOS Frames Control Protocol (NBFCP)</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>1997</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc2097</hyperlink>
    </reference>
    <reference id="RFC2104">
      <name>RFC 2104</name>
      <title>HMAC: Keyed-Hashing for Message Authentication</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>1997</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc2104</hyperlink>
    </reference>
    <reference id="RFC2131">
      <name>RFC 2131</name>
      <title>Dynamic Host Configuration Protocol</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc2131</hyperlink>
    </reference>
    <reference id="RFC2132">
      <name>RFC 2132</name>
      <title>DHCP Options and BOOTP Vendor Extensions</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc2132</hyperlink>
    </reference>
    <reference id="RFC2225">
      <name>RFC 2225</name>
      <title>Classical IP and ARP over ATM</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc2225</hyperlink>
    </reference>
    <reference id="RFC2364">
      <name>RFC 2364</name>
      <title>PPP Over AAL5</title>
      <organization>IETF</organization>
      <date>1998</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc2364</hyperlink>
    </reference>
    <reference id="RFC2474">
      <name>RFC 2474</name>
      <title>
        Definition of the Differentiated Services Field (DS Field) in the IPv4
        and IPv6 Headers
      </title>
      <organization>IETF</organization>
      <category>RFC</category>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc2474</hyperlink>
    </reference>
    <reference id="RFC2581">
      <name>RFC 2581</name>
      <title>TCP Congestion Control</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>April 1999</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc2581</hyperlink>
    </reference>
    <reference id="RFC2582">
      <name>RFC 2582</name>
      <title>The NewReno Modification to TCP's Fast Recovery Algorithm</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>April 1999</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc2582</hyperlink>
    </reference>
    <reference id="RFC2616">
      <name>RFC 2616</name>
      <title>Hypertext Transfer Protocol - HTTP/1.1</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>1999</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc2616</hyperlink>
    </reference>
    <reference id="RFC2684">
      <name>RFC 2684</name>
      <title>Multiprotocol Encapsulation over ATM Adaptation Layer 5</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc2684</hyperlink>
    </reference>
    <reference id="RFC2697">
      <name>RFC 2697</name>
      <title>A Single Rate Three Color Marker</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc2697</hyperlink>
    </reference>
    <reference id="RFC2698">
      <name>RFC 2698</name>
      <title>A Two Rate Three Color Marker</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc2698</hyperlink>
    </reference>
    <reference id="RFC2782">
      <name>RFC 2782</name>
      <title>A DNS RR for specifying the location of services (DNS SRV)</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2000</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc2782</hyperlink>
    </reference>
    <reference id="RFC2784">
      <name>RFC 2784</name>
      <title>Generic Routing Encapsulation (GRE)</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>November 2000</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc2784</hyperlink>
    </reference>
    <reference id="RFC2818">
      <name>RFC 2818</name>
      <title>HTTP Over TLS</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>May 2000</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc2818</hyperlink>
    </reference>
    <reference id="RFC2819">
      <name>RFC 2819</name>
      <title>Remote Network Monitoring Management Information Base</title>
      <organization>IETF</organization>
      <date>2000</date>
    </reference>
    <reference id="RFC2863">
      <name>RFC 2863</name>
      <title>The Interfaces Group MIB</title>
      <organization>IETF</organization>
      <date>2000</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc2863</hyperlink>
    </reference>
    <reference id="RFC2865">
      <name>RFC 2865</name>
      <title>Remote Authentication Dial In User Service (RADIUS)</title>
      <organization>IETF</organization>
      <date>2000</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc2865</hyperlink>
    </reference>
    <reference id="RFC2866">
      <name>RFC 2866</name>
      <title>RADIUS Accounting</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2000</date>
    </reference>
    <reference id="RFC2869">
      <name>RFC 2869</name>
      <title>RADIUS Extensions</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2000</date>
    </reference>
    <reference id="RFC2890">
      <name>RFC 2890</name>
      <title>Key and Sequence Number Extensions to GRE</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>November 2000</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc2890</hyperlink>
    </reference>
    <reference id="RFC2898">
      <name>RFC 2898</name>
      <title>
        PKCS #5: Password-Based Cryptography Specification Version 2.0
      </title>
      <organization>IETF</organization>
      <category>RFC</category>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc2898</hyperlink>
    </reference>
    <reference id="RFC2974">
      <name>RFC 2974</name>
      <title>Session Announcement Protocol</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>October 2000</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc2974</hyperlink>
    </reference>
    <reference id="RFC3004">
      <name>RFC 3004</name>
      <title>The User Class Option for DHCP</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc3004</hyperlink>
    </reference>
    <reference id="RFC3066">
      <name>RFC 3066</name>
      <title>Tags for the Identification of Languages</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc3066</hyperlink>
    </reference>
    <reference id="RFC3118">
      <name>RFC 3118</name>
      <title>Authentication for DHCP Messages</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>June 2001</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc3118</hyperlink>
    </reference>
    <reference id="RFC3174">
      <name>RFC 3174</name>
      <title>US Secure Hash Algorithm 1 (SHA1)</title>
      <organization>IETF</organization>
      <category>Draft Standard</category>
      <date>September, 2001</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc3174</hyperlink>
    </reference>
    <reference id="RFC3203">
      <name>RFC 3203</name>
      <title>DHCP reconfigure extension</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>December 2001</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc3203</hyperlink>
    </reference>
    <reference id="RFC3232">
      <name>RFC 3232</name>
      <title>
        "Assigned Numbers: RFC 1700 is Replaced by an On-line Database"
      </title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2002</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc3232</hyperlink>
    </reference>
    <reference id="RFC3315">
      <name>RFC 3315</name>
      <title>Dynamic Host Configuration Protocol for IPv6 (DHCPv6)</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2003</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc3315</hyperlink>
    </reference>
    <reference id="RFC3339">
      <name>RFC 3339</name>
      <title>Date and Time on the Internet: Timestamps</title>
      <organization>IETF</organization>
      <category>Draft Standard</category>
      <date>July, 2002</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc3339</hyperlink>
    </reference>
    <reference id="RFC3489">
      <name>RFC 3489</name>
      <title>
        STUN - Simple Traversal of User Datagram Protocol (UDP) Through Network
        Address Translators (NATs)
      </title>
      <organization>IETF</organization>
      <category>RFC</category>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc3489</hyperlink>
    </reference>
    <reference id="RFC3596">
      <name>RFC 3596</name>
      <title>DDNS Extensions to Support IP Version 6</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2003</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc3596</hyperlink>
    </reference>
    <reference id="RFC3646">
      <name>RFC 3646</name>
      <title>
        DNS Configuration options for Dynamic Host Configuration Protocol for
        IPv6 (DHCPv6)
      </title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2003</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc3646</hyperlink>
    </reference>
    <reference id="RFC3775">
      <name>RFC 3775</name>
      <title>Mobility Support in IPv6</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2004</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc3775</hyperlink>
    </reference>
    <reference id="RFC3925">
      <name>RFC 3925</name>
      <title>
        Vendor-Identifying Vendor Options for Dynamic Host Configuration
        Protocol version 4 (DHCPv4)
      </title>
      <organization>IETF</organization>
      <category>RFC</category>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc3925</hyperlink>
    </reference>
    <reference id="RFC3926">
      <name>RFC 3926</name>
      <title>FLUTE - File Delivery over Unidirectional Transport</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>October 2004</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc3926</hyperlink>
    </reference>
    <reference id="RFC3927">
      <name>RFC 3927</name>
      <title>Dynamic Configuration of IPv4 Link-Local Addresses</title>
      <organization>IETF</organization>
      <date>2005</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc3927</hyperlink>
    </reference>
    <reference id="RFC3931">
      <name>RFC 3931</name>
      <title>Layer Two Tunneling Protocol - Version 3 (L2TPv3)</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>March 2005</date>
    </reference>
    <reference id="RFC3948">
      <name>RFC 3948</name>
      <title>UDP Encapsulation of IPsec ESP Packets</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>January 2005</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc3948</hyperlink>
    </reference>
    <reference id="RFC3986">
      <name>RFC 3986</name>
      <title>Uniform Resource Identifier (URI): Generic Syntax</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc3986</hyperlink>
    </reference>
    <reference id="RFC4007">
      <name>RFC 4007</name>
      <title>IPv6 Scoped Address Architecture</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc4007</hyperlink>
    </reference>
    <reference id="RFC4122">
      <name>RFC 4122</name>
      <title>A Universally Unique IDentifier (UUID) URN Namespace</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2005</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc4122</hyperlink>
    </reference>
    <reference id="RFC4180">
      <name>RFC4180</name>
      <title>
        Common Format and MIME Type for Comma-Separated Values (CSV) Files
      </title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>October 2005</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc4180</hyperlink>
    </reference>
    <reference id="RFC4191">
      <name>RFC 4191</name>
      <title>Default Router Preferences and More-Specific Routes</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2005</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc4191</hyperlink>
    </reference>
    <reference id="RFC4193">
      <name>RFC 4193</name>
      <title>Unique Local IPv6 Unicast Addresses</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2005</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc4193</hyperlink>
    </reference>
    <reference id="RFC4242">
      <name>RFC 4242</name>
      <title>
        Information Refresh Time Option for Dynamic Host Configuration Protocol
        for IPv6 (DHCPv6)
      </title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2005</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc4242</hyperlink>
    </reference>
    <reference id="RFC4291">
      <name>RFC 4291</name>
      <title>IP Version 6 Addressing Architecture</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2006</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc4291</hyperlink>
    </reference>
    <reference id="RFC4292">
      <name>RFC 4292</name>
      <title>IP Forwarding Table MIB</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2006</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc4292</hyperlink>
    </reference>
    <reference id="RFC4293">
      <name>RFC 4293</name>
      <title>Management Information Base for the Internet Protocol (IP)</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2006</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc4293</hyperlink>
    </reference>
    <reference id="RFC4301">
      <name>RFC 4301</name>
      <title>Security Architecture for the Internet Protocol</title>
      <organization>IETF</organization>
      <date>December 2005</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc4301</hyperlink>
    </reference>
    <reference id="RFC4302">
      <name>RFC 4302</name>
      <title>IP Authentication Header</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>December 2005</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc4302</hyperlink>
    </reference>
    <reference id="RFC4303">
      <name>RFC 4303</name>
      <title>IP Encapsulating Security Payload (ESP)</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>December 2005</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc4303</hyperlink>
    </reference>
    <reference id="RFC4389">
      <name>RFC 4389</name>
      <title>Neighbor Discovery Proxies (ND Proxy)</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2006</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc4389</hyperlink>
    </reference>
    <reference id="RFC4443">
      <name>RFC 4443</name>
      <title>
        Internet Control Message Protocol (ICMPv6) for the Internet Protocol
        Version 6 (IPv6) Specification
      </title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>March 2006</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc4443</hyperlink>
    </reference>
    <reference id="RFC4546">
      <name>RFC 4546</name>
      <title>
        Radio Frequency (RF) Interface Management Information Base for Data
        over Cable Service Interface Specifications (DOCSIS) 2.0 Compliant RF
        Interfaces
      </title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>June 2006</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc4546</hyperlink>
    </reference>
    <reference id="RFC4632">
      <name>RFC 4632</name>
      <title>
        Classless Inter-domain Routing (CIDR): The Internet Address Assignment
        and Aggregation Plan
      </title>
      <organization>IETF</organization>
      <date>2006</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc4632</hyperlink>
    </reference>
    <reference id="RFC4719">
      <name>RFC 4719</name>
      <title>
        Transport of Ethernet Frames over Layer 2 Tunneling Protocol Version 3
        (L2TPv3)
      </title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>November 2006</date>
    </reference>
    <reference id="RFC4835">
      <name>RFC 4835</name>
      <title>
        Cryptographic Algorithm Implementation Requirements for Encapsulating
        Security Payload (ESP) and Authentication Header (AH)
      </title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2007</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc4835</hyperlink>
    </reference>
    <reference id="RFC4861">
      <name>RFC 4861</name>
      <title>Neighbor Discovery for IP version 6 (IPv6)</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2007</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc4861</hyperlink>
    </reference>
    <reference id="RFC4862">
      <name>RFC 4862</name>
      <title>IPv6 Stateless Address Autoconfiguration</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2007</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc4862</hyperlink>
    </reference>
    <reference id="RFC4868">
      <name>RFC 4868</name>
      <title>
        Using HMAC-SHA-256, HMAC-SHA-384, and HMAC-SHA-512 with IPsec
      </title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2007</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc4868</hyperlink>
    </reference>
    <reference id="RFC5072">
      <name>RFC 5072</name>
      <title>IP Version 6 over PPP</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2007</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc5072</hyperlink>
    </reference>
    <reference id="RFC5139">
      <name>RFC 5139</name>
      <title>
        Revised Civic Location Format For Presence Information Data Format
        Location Object (PIDF-LO)
      </title>
      <organization>IETF</organization>
      <date>February 2008</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc5139</hyperlink>
    </reference>
    <reference id="RFC5280">
      <name>RFC 5280</name>
      <title>
        Internet X.509 Public Key Infrastructure Certificate and Certificate
        Revocation List (CRL) Profile
      </title>
      <organization>IETF</organization>
      <date>May 2008</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc5280</hyperlink>
    </reference>
    <reference id="RFC5424">
      <name>RFC 5424</name>
      <title>The Syslog Protocol</title>
      <organization>IETF</organization>
      <date>May 2009</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc5424</hyperlink>
    </reference>
    <reference id="RFC5425">
      <name>RFC 5425</name>
      <title>
        Transport Layer Security (TLS) Transport Mapping for Syslog
      </title>
      <organization>IETF</organization>
      <date>May 2009</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc5425</hyperlink>
    </reference>
    <reference id="RFC5426">
      <name>RFC 5426</name>
      <title>Transmission of Syslog Messages over UDP</title>
      <organization>IETF</organization>
      <date>May 2009</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc5425</hyperlink>
    </reference>
    <reference id="RFC5491">
      <name>RFC 5491</name>
      <title>
        GEOPRIV Presence Information Data Format Location Object (PIDF-LO)
        Usage Clarification, Considerations, and Recommendations
      </title>
      <organization>IETF</organization>
      <date>March 2009</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc5491</hyperlink>
    </reference>
    <reference id="RFC5625">
      <name>RFC 5625</name>
      <title>DNS Proxy Implementation Guidelines</title>
      <organization>IETF</organization>
      <date>2009</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc5625</hyperlink>
    </reference>
    <reference id="RFC5905">
      <name>RFC 5905</name>
      <title>
        Network Time Protocol Version 4: Protocol and Algorithms Specification
      </title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2010</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc5905</hyperlink>
    </reference>
    <reference id="RFC5969">
      <name>RFC 5969</name>
      <title>
        IPv6 Rapid Deployment on IPv4 Infrastructures (6rd) - Protocol
        Specification
      </title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2010</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc5969</hyperlink>
    </reference>
    <reference id="RFC5996">
      <name>RFC 5996</name>
      <title>Internet Key Exchange Protocol Version 2 (IKEv2)</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>September 2010</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc5996</hyperlink>
    </reference>
    <reference id="RFC6106">
      <name>RFC 6106</name>
      <title>IPv6 Router Advertisement Option for DNS Configuration</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2010</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc6106</hyperlink>
    </reference>
    <reference id="RFC6120">
      <name>RFC 6120</name>
      <title>Extensible Messaging and Presence Protocol (XMPP) : Core</title>
      <organization>IETF</organization>
      <date>2011</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc6120</hyperlink>
    </reference>
    <reference id="RFC6234">
      <name>RFC 6234</name>
      <title>
        US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF)
      </title>
      <organization>IETF</organization>
      <category>Draft Standard</category>
      <date>May, 2011</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc6234</hyperlink>
    </reference>
    <reference id="DSLite">
      <name>RFC 6333</name>
      <title>
        Dual-Stack Lite Broadband Deployments Following IPv4 Exhaustion
      </title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2011</date>
    </reference>
    <reference id="DSLite-options">
      <name>RFC 6334</name>
      <title>
        Dynamic Host Configuation Protocol for IPv6 (DHCPv6) Option for
        Dual-Stack Lite
      </title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2011</date>
    </reference>
    <reference id="RFC6455">
      <name>RFC 6455</name>
      <title>The WebSocket Protocol</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>December 2011</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc6455</hyperlink>
    </reference>
    <reference id="RFC6587">
      <name>RFC 6587</name>
      <title>Transmission of Syslog Messages over TCP</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>April 2012</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc6587</hyperlink>
    </reference>
    <reference id="RFC6614">
      <name>RFC 6614</name>
      <title>Transport Layer Security (TLS) Encryption for RADIUS</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>May 2012</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc6614</hyperlink>
    </reference>
    <reference id="RFC6762">
      <name>RFC 6762</name>
      <title>Multicast DNS</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>February 2013</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc6762</hyperlink>
    </reference>
    <reference id="DNS-SD">
      <name>RFC 6763</name>
      <title>DNS-Based Service Discovery</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2013</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc6763</hyperlink>
    </reference>
    <reference id="RFC6838">
      <name>RFC 6838</name>
      <title>Media Type Specifications and Registration Procedures</title>
      <organization>IETF</organization>
      <category>Best Current Practice</category>
      <date>January 2013</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc6838</hyperlink>
    </reference>
    <reference id="RFC6887">
      <name>RFC 6887</name>
      <title>Port Control Protocol (PCP)</title>
      <organization>IETF</organization>
      <date>2013</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc6887</hyperlink>
    </reference>
    <reference id="RFC6970">
      <name>RFC 6970</name>
      <title>
        Universal Plug and Play (UPnP) Internet Gateway Device (IGD) - Port
        Control Protocol (PCP) Interworking Function
      </title>
      <organization>IETF</organization>
      <date>2013</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc6970</hyperlink>
    </reference>
    <reference id="RFC7159">
      <name>RFC7159</name>
      <title>
        The JavaScript Object Notation (JSON) Data Interchange Format
      </title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>March 2014</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc7159</hyperlink>
    </reference>
    <reference id="RFC7230">
      <name>RFC 7230</name>
      <title>
        Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing
      </title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>June 2014</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc7230</hyperlink>
    </reference>
    <reference id="RFC7252">
      <name>RFC 7252</name>
      <title>The Constrained Application Protocol (CoAP)</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>June 2014</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc7252</hyperlink>
    </reference>
    <reference id="RFC7291">
      <name>RFC 7291</name>
      <title>DHCP Options for the Port Control Protocol (PCP)</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>July 2014</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc7291</hyperlink>
    </reference>
    <reference id="RFC7301">
      <name>RFC 7301</name>
      <title>
        Transport Layer Security (TLS) Application-Layer Protocol Negotiation
        Extension
      </title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>July 2014</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc7301</hyperlink>
    </reference>
    <reference id="RFC7348">
      <name>RFC 7348</name>
      <title>Virtual eXtensible Local Area Network (VXLAN)</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>August 2014</date>
    </reference>
    <reference id="RFC7395">
      <name>RFC 7395</name>
      <title>
        An Extensible Messaging and Presence Protocol (XMPP) Subprotocol for
        WebSocket
      </title>
      <organization>IETF</organization>
      <category>Standards Track</category>
      <date>October 2014</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc7395</hyperlink>
    </reference>
    <reference id="RFC7398">
      <name>RFC 7398</name>
      <title>
        A Reference Path and Measurement Points for Large-Scale Measurement of
        Broadband Performance
      </title>
      <organization>IETF</organization>
      <category>Informational RFC</category>
      <date>February 2015</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc7398</hyperlink>
    </reference>
    <reference id="RFC7468">
      <name>RFC 7468</name>
      <title>Textual Encoding of PKIX, PKCS, and CMS Structures</title>
      <organization>IETF</organization>
      <category>Standards Track</category>
      <date>April 2015</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc7468</hyperlink>
    </reference>
    <reference id="RFC7594">
      <name>RFC 7594</name>
      <title>
        A Framework for Large-Scale Measurement of Broadband Performance (LMAP)
      </title>
      <organization>IETF</organization>
      <category>Informational RFC</category>
      <date>September 2015</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc7594</hyperlink>
    </reference>
    <reference id="RFC7597">
      <name>RFC 7597</name>
      <title>Mapping of Address and Port with Encapsulation (MAP)</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>July 2015</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc7597</hyperlink>
    </reference>
    <reference id="RFC7598">
      <name>RFC 7598</name>
      <title>
        DHCPv6 Options for configuration of Softwire Address and Port Mapped
        Clients
      </title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>July 2015</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc7598</hyperlink>
    </reference>
    <reference id="RFC7599">
      <name>RFC 7599</name>
      <title>Mapping of Address and Port using Translation (MAP-T)</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>July 2015</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc7599</hyperlink>
    </reference>
    <reference id="RFC7616">
      <name>RFC 7616</name>
      <title>HTTP Digest Access Authentication</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>September 2015</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc7616</hyperlink>
    </reference>
    <reference id="RFC7617">
      <name>RFC 7617</name>
      <title>The 'Basic' HTTP Authentication Scheme</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>September 2015</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc7617</hyperlink>
    </reference>
    <reference id="RFC7693">
      <name>RFC 7693</name>
      <title>
        The BLAKE2 Cryptographic Hash and Message Authentication Code (MAC)
      </title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>November 2015</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc7693</hyperlink>
    </reference>
    <reference id="RFC8089">
      <name>RFC 8089</name>
      <title>The "file" URI Scheme</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>February 2017</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc8089</hyperlink>
    </reference>
    <reference id="RFC8106">
      <name>RFC 8106</name>
      <title>IPv6 Router Advertisement Options for DNS Configuration</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>March 2017</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc8106</hyperlink>
    </reference>
    <reference id="RFC8141">
      <name>RFC 8141</name>
      <title>Uniform Resource Names (URNs)</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>April 2017</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc8141</hyperlink>
    </reference>
    <reference id="LMAPIFM">
      <name>RFC 8193</name>
      <title>
        Information Model for Large-Scale Measurement Platforms (LMAPs)
      </title>
      <organization>IETF</organization>
      <category>Informational RFC</category>
      <date>August 2017</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc8193</hyperlink>
    </reference>
    <reference id="RFC8325">
      <name>RFC 8325</name>
      <title>Mapping Diffserv to IEEE 802.11</title>
      <organization>IETF</organization>
      <category>Proposed Standard</category>
      <date>February 2018</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc8325</hyperlink>
    </reference>
    <reference id="RFC8349">
      <name>RFC 8349</name>
      <title>A YANG Data Model for Routing Management (NMDA Version)</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>March 2018</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc8349</hyperlink>
    </reference>
    <reference id="RFC8415">
      <name>RFC 8415</name>
      <title>Dynamic Host Configuration Protocol for IPv6 (DHCPv6)</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>November 2018</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc8415</hyperlink>
    </reference>
    <reference id="RFC8822">
      <name>RFC 8822</name>
      <title>
        5G Wireless Wireline Convergence User Plane Encapsulation (5WE)
      </title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>April 2021</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc8822</hyperlink>
    </reference>
    <reference id="RFC8966">
      <name>RFC 8966</name>
      <title>The Babel Routing Protocol</title>
      <organization>IETF</organization>
      <category>Proposed Standard</category>
      <date>January 2021</date>
      <hyperlink>https://www.rfc-editor.org/info/rfc8966</hyperlink>
    </reference>
    <reference id="RFC8967">
      <name>RFC 8967</name>
      <title>MAC Authentication for the Babel Routing Protocol</title>
      <organization>IETF</organization>
      <category>Proposed Standard</category>
      <date>January 2021</date>
      <hyperlink>https://www.rfc-editor.org/info/rfc8967</hyperlink>
    </reference>
    <reference id="RFC8968">
      <name>RFC 8968</name>
      <title>
        Babel Routing Protocol over Datagram Transport Layer Security
      </title>
      <organization>IETF</organization>
      <category>Proposed Standard</category>
      <date>January 2021</date>
      <hyperlink>https://www.rfc-editor.org/info/rfc8968</hyperlink>
    </reference>
    <reference id="RFC9046">
      <name>RFC 9046</name>
      <title>Babel Information Model</title>
      <organization>IETF</organization>
      <category>Informational</category>
      <date>June 2021</date>
      <hyperlink>https://www.rfc-editor.org/info/rfc9046</hyperlink>
    </reference>
    <reference id="RFC9110">
      <name>RFC 9110</name>
      <title>HTTP Semantics</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>June 2022</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc9110</hyperlink>
    </reference>
    <reference id="RFC9147">
      <name>RFC 9147</name>
      <title>
        The Datagram Transport Layer Security (DTLS) Protocol Version 1.3
      </title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>April 2022</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc9147</hyperlink>
    </reference>
    <reference id="RFC9249">
      <name>RFC 9249</name>
      <title>A YANG Data Model for NTP</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>July 2022</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc9249</hyperlink>
    </reference>
    <reference id="YANGSYSLOG">
      <name>draft-ietf-netmod-syslog-model</name>
      <title>A YANG Data Model for Syslog Configuration</title>
      <organization>IETF</organization>
      <category>Internet Draft</category>
      <date>April 2023</date>
      <hyperlink>
        https://datatracker.ietf.org/doc/draft-ietf-netmod-syslog-model
      </hyperlink>
    </reference>
    <reference id="TR-064">
      <name>TR-064 Corrigendum 1</name>
      <title>LAN-Side DSL CPE Configuration Specification</title>
      <organization>Broadband Forum</organization>
      <category>TR</category>
      <date>August 2015</date>
    </reference>
    <reference id="TR-069">
      <name>TR-069 Amendment 6</name>
      <title>CPE WAN Management Protocol</title>
      <organization>Broadband Forum</organization>
      <category>TR</category>
      <date>April 2018</date>
    </reference>
    <reference id="TR-106">
      <name>TR-106 Amendment 8</name>
      <title>Data Model Template for CWMP Endpoints and USP Agents</title>
      <organization>Broadband Forum</organization>
      <category>TR</category>
      <date>May 2018</date>
    </reference>
    <reference id="TR-124i5">
      <name>TR-124 Issue 5</name>
      <title>
        Functional Requirements for Broadband Residential Gateway Devices
      </title>
      <organization>Broadband Forum</organization>
      <category>TR</category>
      <date>July 2016</date>
    </reference>
    <reference id="TR-124i6">
      <name>TR-124 Issue 6</name>
      <title>
        Functional Requirements for Broadband Residential Gateway Devices
      </title>
      <organization>Broadband Forum</organization>
      <category>TR</category>
      <date>July 2020</date>
    </reference>
    <reference id="TR-143">
      <name>TR-143 Amendment 1 Corrigendum 1</name>
      <title>
        Enabling Network Throughput Performance Tests and Statistical
        Monitoring
      </title>
      <organization>Broadband Forum</organization>
      <category>TR</category>
      <date>August 2015</date>
    </reference>
    <reference id="TR-159">
      <name>TR-159</name>
      <title>Management Framework for xDSL Bonding</title>
      <organization>Broadband Forum</organization>
      <category>TR</category>
      <date>December 2008</date>
    </reference>
    <reference id="TR-181i2">
      <name>TR-181 Issue 2 Amendment 15</name>
      <title>Device Data Model</title>
      <organization>Broadband Forum</organization>
      <category>TR</category>
      <date>January 2022</date>
    </reference>
    <reference id="TR-232">
      <name>TR-232</name>
      <title>Bulk Data Collection</title>
      <organization>Broadband Forum</organization>
      <category>Technical Report</category>
      <date>May 2012</date>
    </reference>
    <reference id="TR-262">
      <name>TR-262</name>
      <title>Femto Component Objects</title>
      <organization>Broadband Forum</organization>
      <category>TR</category>
      <date>November 2011</date>
    </reference>
    <reference id="TR-304">
      <name>TR-304</name>
      <title>
        Broadband Access Service Attributes and Performance Metrics
      </title>
      <organization>Broadband Forum</organization>
      <category>Technical Report</category>
      <date>February 2015</date>
    </reference>
    <reference id="TR-369">
      <name>TR-369 Issue 1 Amendment 2</name>
      <title>User Services Platform</title>
      <organization>Broadband Forum</organization>
      <category>Technical Report</category>
      <date>January 2022</date>
      <hyperlink>https://usp.technology/specification</hyperlink>
    </reference>
    <reference id="TR-390">
      <name>TR-390</name>
      <title>Performance Measurement from Customer Equipment to IP Edge</title>
      <organization>Broadband Forum</organization>
      <category>Technical Report</category>
      <date>May 2017</date>
    </reference>
    <reference id="TR-471">
      <name>TR-471</name>
      <title>
        Maximum IP-Layer Capacity Metric, Related Metrics, and Measurements
      </title>
      <organization>Broadband Forum</organization>
      <category>Technical Report</category>
      <date>December 2023</date>
      <hyperlink>
        https://www.broadband-forum.org/download/TR-471_Issue-4.pdf
      </hyperlink>
    </reference>
    <reference id="AFCSDI">
      <name>AFC System to AFC Device Interface (SDI) Specification</name>
      <title>
        Wi-Fi AFC System to AFC Device Interface (SDI) Specification
      </title>
      <organization>Wi-Fi Alliance</organization>
      <date>May 2024</date>
      <hyperlink>
        https://www.wi-fi.org/discover-wi-fi/specifications
      </hyperlink>
    </reference>
    <reference id="AMB">
      <name>Agile MultiBand Specification</name>
      <title>Wi-Fi Agile MultiBand Specification</title>
      <organization>Wi-Fi Alliance</organization>
      <date>December 2018</date>
      <hyperlink>
        https://www.wi-fi.org/discover-wi-fi/specifications
      </hyperlink>
    </reference>
    <reference id="DataElements">
      <name>Data Elements Specification</name>
      <title>Wi-Fi Data Elements Specification</title>
      <organization>Wi-Fi Alliance</organization>
      <date>2024</date>
      <hyperlink>
        https://www.wi-fi.org/discover-wi-fi/specifications
      </hyperlink>
    </reference>
    <reference id="EasyConnect">
      <name>Wi-Fi Easy Connect Specification</name>
      <title>Wi-Fi Easy Connect Specification</title>
      <organization>Wi-Fi Alliance</organization>
      <date>November 2022</date>
      <hyperlink>
        https://www.wi-fi.org/discover-wi-fi/specifications
      </hyperlink>
    </reference>
    <reference id="EasyMesh">
      <name>EasyMesh Specification</name>
      <title>Wi-Fi EasyMesh Specification</title>
      <organization>Wi-Fi Alliance</organization>
      <date>August 2024</date>
      <hyperlink>
        https://www.wi-fi.org/discover-wi-fi/specifications
      </hyperlink>
    </reference>
    <reference id="Passpoint">
      <name>Passpoint</name>
      <title>Passpoint Specification</title>
      <organization>Wi-Fi Alliance</organization>
      <hyperlink>
        https://www.wi-fi.org/discover-wi-fi/specifications
      </hyperlink>
    </reference>
    <reference id="WMM">
      <name>Wi-Fi Multimedia Technical Specification</name>
      <title>Wi-Fi Multimedia Technical Specification</title>
      <organization>Wi-Fi Alliance</organization>
      <date>May 2012</date>
      <hyperlink>
        https://www.wi-fi.org/discover-wi-fi/specifications
      </hyperlink>
    </reference>
    <reference id="WPSv1.0">
      <name>Wi-Fi Protected Setup Specification Version 1.0h</name>
      <title>Wi-Fi Alliance</title>
      <date>2006</date>
      <hyperlink>
        https://www.wi-fi.org/discover-wi-fi/specifications
      </hyperlink>
    </reference>
    <reference id="WPS 2.0">
      <name>WSC 2.0</name>
      <title>
        Wi-Fi Simple Configuration Technical Specification Version 2.0.x
      </title>
      <organization>Wi-Fi Alliance</organization>
      <hyperlink>
        https://www.wi-fi.org/discover-wi-fi/specifications
      </hyperlink>
    </reference>
    <reference id="WPA3v3.0">
      <name>WPA3v3.0</name>
      <title>Wi-Fi Protected Access 3 Specification Version 3.0.x</title>
      <organization>Wi-Fi Alliance</organization>
      <hyperlink>
        https://www.wi-fi.org/discover-wi-fi/specifications
      </hyperlink>
    </reference>
    <reference id="BLUE">
      <name>Blue</name>
      <title>A New Class of Active Queue Management Algorithms</title>
      <hyperlink>
        https://en.wikipedia.org/wiki/Blue_(queue_management_algorithm)
      </hyperlink>
    </reference>
    <reference id="BPF">
      <name>BPF</name>
      <title>Berkeley Packet Filter Syntax</title>
      <organization>FreeBSD.org</organization>
      <date>October 2016</date>
      <hyperlink>https://www.freebsd.org/cgi/man.cgi?query=bpf</hyperlink>
    </reference>
    <reference id="DLNA-NDIG">
      <name>DLNA Networked Device Interoperability Guidelines</name>
      <title>
        DLNA Networked Device Interoperability Guidelines, Volume 2: Media
        Format Profiles.
      </title>
      <organization>DLNA</organization>
      <date>October 2006</date>
      <hyperlink>
        https://www.dlna.org/industry/certification/guidelines/
      </hyperlink>
    </reference>
    <reference id="HPAV1.1">
      <name>HomePlug™ AV Specification</name>
      <title>Version 1.1</title>
      <organization>HomePlug Alliance</organization>
      <date>2007</date>
      <hyperlink>https://en.wikipedia.org/wiki/HomePlug</hyperlink>
    </reference>
    <reference id="HTML4.01">
      <name>HTML 4.01 Specification</name>
      <organization>W3C</organization>
      <hyperlink>https://www.w3.org/TR/html4</hyperlink>
    </reference>
    <reference id="ICSA-Baseline">
      <name>ICSA Baseline Modular Firewall Certification Criteria</name>
      <title>Baseline module - version 4.1</title>
      <organization>ICSA Labs</organization>
      <date>2008</date>
      <hyperlink>
        https://www.icsalabs.com/sites/default/files/baseline.pdf
      </hyperlink>
    </reference>
    <reference id="ICSA-Residential">
      <name>ICSA Residential Modular Firewall Certification Criteria</name>
      <title>
        Required Services Security Policy - Residential Category module -
        version 4.1
      </title>
      <organization>ICSA Labs</organization>
      <date>2008</date>
      <hyperlink>
        https://www.icsalabs.com/sites/default/files/residential.pdf
      </hyperlink>
    </reference>
    <reference id="IPDR-FTP">
      <name>IPDR File Transfer Protocol</name>
      <title>IPDR/File Transfer Protocol</title>
      <organization>TM Forum</organization>
      <hyperlink>https://www.tmforum.org/ipdr/</hyperlink>
    </reference>
    <reference id="IPDR-SP">
      <name>IPDR Streaming Protocol</name>
      <title>IPDR Streaming Protocol (IPDR/SP) Specification</title>
      <organization>TM Forum</organization>
      <hyperlink>https://www.tmforum.org/ipdr/</hyperlink>
    </reference>
    <reference id="IPDR-XDR">
      <name>IPDR XDR Encoding Format</name>
      <title>IPDR/XDR Encoding Format</title>
      <organization>TM Forum</organization>
      <hyperlink>https://www.tmforum.org/ipdr/</hyperlink>
    </reference>
    <reference id="IPDR-XML">
      <name>IPDR XML File Encoding Format</name>
      <title>IPDR/XML File Encoding Format</title>
      <organization>TM Forum</organization>
      <hyperlink>https://www.tmforum.org/ipdr/</hyperlink>
    </reference>
    <reference id="JJ-300.00">
      <name>JJ-300.00</name>
      <title>Home-network Topology Identifying Protocol</title>
      <organization>TTC</organization>
      <date>2011</date>
      <hyperlink>
        https://www.ttc.or.jp/application/files/1115/5443/0461/JJ-300.00Ev3.pdf
      </hyperlink>
    </reference>
    <reference id="JJ-300.01">
      <name>JJ-300.01</name>
      <title>The List of Device Categories</title>
      <organization>TTC</organization>
      <date>2011</date>
      <hyperlink>
        https://www.ttc.or.jp/application/files/1115/5443/0461/JJ-300.00Ev3.pdf
      </hyperlink>
    </reference>
    <reference id="LIBPCAP">
      <name>Libpcap</name>
      <title>Libpcap File Format</title>
      <organization>Wireshark</organization>
      <date>2015</date>
      <hyperlink>
        https://wiki.wireshark.org/Development/LibpcapFileFormat
      </hyperlink>
    </reference>
    <reference id="MoCAv1.0">
      <name>MoCA v1.0</name>
      <title>MoCA MAC/PHY Specification v1.0</title>
      <organization>MoCA Alliance</organization>
      <date>2009</date>
      <hyperlink>https://www.mocalliance.org</hyperlink>
    </reference>
    <reference id="MoCAv1.1">
      <name>MoCA v1.1</name>
      <title>MoCA MAC/PHY Specification v1.1 Extensions</title>
      <organization>MoCA Alliance</organization>
      <date>2009</date>
      <hyperlink>https://www.mocalliance.org</hyperlink>
    </reference>
    <reference id="MoCAv2.0">
      <name>MoCA v2.0</name>
      <title>MoCA MAC/PHY Specification v2.0</title>
      <organization>MoCA Alliance</organization>
      <date>2017</date>
      <hyperlink>https://www.mocalliance.org</hyperlink>
    </reference>
    <reference id="MoCAv2.5">
      <name>MoCA v2.5</name>
      <title>MoCA MAC/PHY Specification v2.5</title>
      <organization>MoCA Alliance</organization>
      <date>2017</date>
      <hyperlink>https://www.mocalliance.org</hyperlink>
    </reference>
    <reference id="MOCA11-MIB">
      <name>MOCA11-MIB</name>
      <title>Remote Management of MoCA Interfaces using SNMP MIB</title>
      <organization>MoCA Alliance</organization>
      <date>2009</date>
      <hyperlink>https://www.mocalliance.org</hyperlink>
    </reference>
    <reference id="MOCA20-MIB">
      <name>MOCA20-MIB</name>
      <title>Remote Management of MoCA Interfaces using SNMP MIB v2.0</title>
      <organization>MoCA Alliance</organization>
      <date>2020</date>
      <hyperlink>https://www.mocalliance.org</hyperlink>
    </reference>
    <reference id="MOCA25-MIB">
      <name>MOCA25-MIB</name>
      <title>
        Remote Management of MoCA Interfaces using SNMP MIB v2.5 (Approved
        draft)
      </title>
      <organization>MoCA Alliance</organization>
      <date>2018</date>
      <hyperlink>https://www.mocalliance.org</hyperlink>
    </reference>
    <reference id="MQTT31">
      <name>MQTT v3.1</name>
      <title>MQ Telemetry Transport (MQTT) V3.1 Protocol Specification</title>
      <date>2010</date>
      <hyperlink>
        https://public.dhe.ibm.com/software/dw/webservices/ws-mqtt/mqtt-v3r1.html
      </hyperlink>
    </reference>
    <reference id="MQTT311">
      <name>MQTT Version 3.1.1</name>
      <title>MQTT v3.1.1</title>
      <organization>
        OASIS Message Queuing Telemetry Transport (MQTT) TC
      </organization>
      <date>October 2014</date>
      <hyperlink>
        https://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html
      </hyperlink>
    </reference>
    <reference id="MQTT50">
      <name>MQTT Version 5.0</name>
      <title>MQTT Version 5.0, Candidate OASIS Standard 02.</title>
      <organization>
        OASIS Message Queuing Telemetry Transport (MQTT) TC
      </organization>
      <date>February 2019</date>
      <hyperlink>
        https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html
      </hyperlink>
    </reference>
    <reference id="RED">
      <name>References on RED (Random Early Detection) Queue Management</name>
      <hyperlink>http://www.icir.org/floyd/red.html</hyperlink>
    </reference>
    <reference id="POSIXBase">
      <name>ISO/IEC/IEEE 9945</name>
      <title>
        Information technology - Portable Operating System Interface (POSIX)
        Base Specifications, Issue 7
      </title>
      <organization>ISO/IEC/IEEE</organization>
      <date>September 2009</date>
      <hyperlink>
        https://ieeexplore.ieee.org/xpl/mostRecentIssue.jsp?punumber=4694974
      </hyperlink>
    </reference>
    <reference id="SFF-8024">
      <name>SFF-8024</name>
      <title>SFF Module Management Reference Code Tables</title>
      <organization>SNIA</organization>
      <date>May 2021</date>
      <hyperlink>https://members.snia.org/document/dl/26423</hyperlink>
    </reference>
    <reference id="SFF-8472">
      <name>SFF-8472</name>
      <title>Management Interface for SFP+</title>
      <organization>SNIA</organization>
      <date>March 2021</date>
      <hyperlink>https://members.snia.org/document/dl/25916</hyperlink>
    </reference>
    <reference id="SFF-8079">
      <name>SFF-8079</name>
      <title>SFP Rate and Application Selection</title>
      <organization>SNIA</organization>
      <date>February 2005</date>
      <hyperlink>https://members.snia.org/document/dl/26164</hyperlink>
    </reference>
    <reference id="SFF-8431">
      <name>SFF-8431</name>
      <title>SFP+ 10 Gb/s and Low Speed Electrical Interface</title>
      <organization>SNIA</organization>
      <date>July 2009</date>
      <hyperlink>https://members.snia.org/document/dl/25891</hyperlink>
    </reference>
    <reference id="SOAP1.1">
      <name>Simple Object Access Protocol (SOAP) 1.1</name>
      <organization>W3C</organization>
      <hyperlink>https://www.w3.org/TR/2000/NOTE-SOAP-20000508</hyperlink>
    </reference>
    <reference id="STOMP1.2">
      <name>STOMP Protocol Specification</name>
      <title>STOMP Protocol Specification, Version 1.2</title>
      <hyperlink>
        https://stomp.github.io/stomp-specification-1.2.html
      </hyperlink>
    </reference>
    <reference id="ThreadSpec">
      <name>Thread Specification</name>
      <title>Thread Specification, Version 1.3</title>
      <organization>Thread Group</organization>
      <hyperlink>https://www.threadgroup.org/ThreadSpec</hyperlink>
    </reference>
    <reference id="ThreadIPv6Addressing">
      <name>Thread Network Fundamentals</name>
      <title>Thread Network Fundamentals, Version 3</title>
      <organization>Thread Group</organization>
      <hyperlink>
        https://www.threadgroup.org/Portals/0/documents/support/Thread%20Network%20Fundamentals_v3.pdf
      </hyperlink>
    </reference>
    <reference id="UPA-PLC">
      <name>Universal Powerline Association</name>
      <organization>UPA</organization>
      <hyperlink>https://www.upaplc.org</hyperlink>
    </reference>
    <reference id="UPnP-DAv1">
      <name>UPnP Device Architecture</name>
      <title>UPnP Device Architecture 1.0</title>
      <organization>UPnP Forum</organization>
      <date>April 2008</date>
      <hyperlink>
        http://www.upnp.org/specs/arch/UPnP-arch-DeviceArchitecture-v1.0-20080424.pdf
      </hyperlink>
    </reference>
    <reference id="UPnP-DAv11">
      <name>UPnP Device Architecture 1.1</name>
      <title>UPnP Device Architecture 1.1</title>
      <organization>UPnP Forum</organization>
      <date>October, 2008</date>
      <hyperlink>
        http://www.upnp.org/specs/arch/UPnP-arch-DeviceArchitecture-v1.1.pdf
      </hyperlink>
    </reference>
    <reference id="UPnP-DM:1">
      <name>UPnP Device Management:1</name>
      <title>UPnP Device Management v1</title>
      <hyperlink>
        https://openconnectivity.org/developer/specifications/upnp-resources/upnp/device-management1-2
      </hyperlink>
    </reference>
    <reference id="UPnP-IGD:1">
      <name>UPnP InternetGatewayDevice:1</name>
      <title>InternetGatewayDevice:1 Device Template Version 1.01</title>
      <organization>UPnP</organization>
      <category>SDCP</category>
      <date>2001</date>
      <hyperlink>
        http://upnp.org/specs/gw/UPnP-gw-InternetGatewayDevice-v1-Device.pdf
      </hyperlink>
    </reference>
    <reference id="UPnP-IGD:2">
      <name>UPnP InternetGatewayDevice:2</name>
      <title>InternetGatewayDevice:2 Device Template Version 1.01</title>
      <organization>UPnP</organization>
      <category>SDCP</category>
      <date>2010</date>
      <hyperlink>
        http://upnp.org/specs/gw/UPnP-gw-InternetGatewayDevice-v2-Device.pdf
      </hyperlink>
    </reference>
    <reference id="USB1.0">
      <name>USB 1.0</name>
      <title>USB 1.0 Specification</title>
      <organization>USB-IF</organization>
      <date>January 1996</date>
      <hyperlink>https://www.usb.org/documents</hyperlink>
    </reference>
    <reference id="USB2.0">
      <name>USB 2.0</name>
      <title>USB 2.0 Specification</title>
      <organization>USB-IF</organization>
      <date>April 2000</date>
      <hyperlink>https://www.usb.org/documents</hyperlink>
    </reference>
    <reference id="USB3.0">
      <name>USB 3.0</name>
      <title>USB 3.0 Specification</title>
      <organization>USB-IF</organization>
      <date>November 2008</date>
      <hyperlink>https://www.usb.org/documents</hyperlink>
    </reference>
    <reference id="Z-Wave">
      <name>Z-Wave</name>
      <title>Z-Wave website</title>
      <hyperlink>https://www.z-wave.com</hyperlink>
    </reference>
    <reference id="ZigBee">
      <name>ZigBee</name>
      <title>ZigBee Alliance website</title>
      <hyperlink>https://csa-iot.org/all-solutions/zigbee</hyperlink>
    </reference>
    <reference id="ZigBee2007">
      <name>ZigBee 2007 Specification</name>
      <title>ZigBee 2007 Specification</title>
      <organization>ZigBee Alliance</organization>
      <date>October 2007</date>
      <hyperlink>https://csa-iot.org/all-solutions/zigbee</hyperlink>
    </reference>
  </bibliography>

  <template id="IP-DIAGNOSTICS-PARENT"/>

  <template id="MQTTChange">
    A change of this parameter is only communicated to the MQTT server with the
    next MQTT CONNECT packet.
  </template>

  <template id="MQTTReconnect">
    {{template|MQTTChange}} If the change needs to be applied immediately, the
    parameter {{param|ForceReconnect}} has to be set as well.
  </template>

  <template id="MQTTWillChange">
    {{template|MQTTChange}}

    If will handling is enabled (Parameter {{param|WillEnable}} is set to
    {{true}}) and the change needs to be applied immediately, the parameter
    {{param|ForceReconnect}} has to be set as well.
  </template>

  <template id="MQTT50ONLY">
    This parameter only applies if {{param|ProtocolVersion}} is set to
    {{enum|5.0|#.Capabilities.ProtocolVersionsSupported}}.
  </template>

  <template id="INTERFACE-ROUTING">
    If the value is {{empty}}, the CPE MUST use its routing policy (IP
    Forwarding table entries), if necessary, to determine the appropriate
    interface.
  </template>

  <template id="Reset">
    {{param|Reset}} parameter is set to {{true}}
  </template>

  <template id="BULK-DATA-HTTP-REF">
    {{bibref|TR-069|Annex N}}
  </template>

  <template id="BULK-DATA-HTTP-QUERY-REF">
    {{bibref|TR-069|Annex N.2.1}}
  </template>

  <template id="BULK-DATA-HTTP-RETRY-REF">
    {{bibref|TR-069|Annex N.2.2.1}}
  </template>

  <template id="BULK-DATA-WILD-REF">
    {{bibref|TR-069|Annex N.3.1}}
  </template>

  <template id="BULK-DATA-CSV-REF">
    {{bibref|TR-069|Annex N.3.4}}
  </template>

  <template id="BULK-DATA-JSON-REF">
    {{bibref|TR-069|Annex N.3.5}}
  </template>

  <template id="BULK-DATA-OPT-SOLNS"/>

  <template id="BULK-DATA-TIMESTAMP">
    . If the CPE is unable to acquire a time, then the processing described by
    the dateTime type in {{bibref|TR-069|Table 12}} is followed
  </template>

  <template id="FAP-GPS-RESET">
    This value is retained across reboots and is only reset after another scan
    completes successfully or {{param|GPSReset}} is set to {{true}}.
  </template>

  <template id="PERIODICSTATISTICS-FORCESAMPLE">
    {{param|Device.PeriodicStatistics.SampleSet.{i}.ForceSample}}
  </template>

  <template id="PERIODICSTATISTICS-FAILURES">
    {{param|Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.Failures}}
  </template>

  <template id="USP-REQUEST-CHALLENGE">
    USP RequestChallenge()
  </template>

  <template id="USP-CHALLENGE-RESPONSE">
    USP ChallengeResponse()
  </template>

  <template id="XMPP-REF">
    , as specified in {{bibref|TR-069|Annex K XMPP Connection Request}}
  </template>

  <template id="XMPP-APP-REF">
    , as described in {{bibref|TR-069|Appendix III}}
  </template>

  <template id="VENDORCONFIGFILE-DESC">
    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.
  </template>

  <template id="VENDORCONFIGFILE-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.
  </template>

  <template id="IPLAYERCAPACITY">
    {{object|Device.IP.Diagnostics.IPLayerCapacityMetrics}}
  </template>

  <model name="Device:2.19">

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

      <parameter name="RootDataModelVersion" access="readOnly"
          forcedInform="true" version="2.4">
        <description>
          Root data model version, e.g. ''2.4''. For a vendor-defined root data
          model, this is the standard Broadband Forum model on which the
          vendor-defined model is based.
        </description>
        <syntax>
          <string>
            <size maxLength="32"/>
            <pattern value="2\.\d+"/>
          </string>
        </syntax>
      </parameter>

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

      <parameter name="CollectionDeviceNumberOfEntries" version="2.19">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

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

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

      <parameter name="DeviceCategory" access="readOnly" version="2.8">
        <description>
          Each list item is a device category (e.g. "AV_TV" and "AV_Recorder"),
          or the value is {{empty}} if no such element is provided by the
          device.

          Note: It is assumed that this list might be used for HTIP
          (Home-network Topology Identifying Protocol) {{bibref|JJ-300.00}} and
          {{bibref|G.9973}}. Standard HTIP device categories are defined in
          {{bibref|JJ-300.01}}. In this case, the maximum length of the list is
          127 and of each item is 31, and any non-HTIP device categories SHOULD
          NOT conflict with standard HTIP device categories.
        </description>
        <syntax>
          <list/>
          <string/>
        </syntax>
      </parameter>

      <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">
        <description>
          Model name of the CPE (human readable string).
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ModelNumber" access="readOnly" version="2.8">
        <description>
          The model number of the device (human readable string), or {{empty}}
          if no model number is provided by the device.

          Note: It is assumed that this string might be used for HTIP
          (Home-network Topology Identifying Protocol) {{bibref|JJ-300.00}} and
          {{bibref|G.9973}}. In this case, the maximum length of the string is
          31.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Description" access="readOnly">
        <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.
        </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.
        </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"
          activeNotify="forceEnabled" forcedInform="true">
        <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="ActiveFirmwareImage" access="readOnly" version="2.12">
        <description>
          {{noreference}}A full path reference to the row in the
          {{object|FirmwareImage}} table representing the currently running
          firmware image.
        </description>
        <syntax>
          <string>
            <pathRef targetType="row" targetParent="FirmwareImage."
                refType="strong"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="BootFirmwareImage" access="readWrite" version="2.12">
        <description>
          {{noreference}}A full path reference to the row in the
          {{object|FirmwareImage}} table of the firmware image that is to be
          loaded the next time the device boots.

          This parameter value cannot be empty and must point to a valid and
          enabled {{object|FirmwareImage}} object where the
          ({{param|FirmwareImage.{i}.Available}} parameter is set to 'true').
          Out of the factory, this parameter should be set to point to the
          firmware image the CPE will attempt to boot when first powered on.

          The firmware image instance referenced by this parameter must also
          have an Available parameter value of 'true'. Attempting to set this
          parameter to point to a non-enabled firmware image MUST result in the
          CPE responding with a CWMP fault (9007).

          In situations where the CPE cannot boot the firmware image specified
          by this parameter and manages to boot a different firmware image, the
          CPE MUST NOT modify this value to point to the alternate firmware
          image that is currently active.
        </description>
        <syntax>
          <string>
            <pathRef targetType="row" targetParent="FirmwareImage."
                refType="strong"/>
          </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"
          activeNotify="forceEnabled" forcedInform="true">
        <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">
        <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="HostName" access="readWrite" version="2.16">
        <description>
          The hostname of the device {{bibref|RFC1123|Section 2 General
          issues}}. This can be either a Fully Qualified Domain Name (FQDN) or
          just the first component of an FQDN. For example, myhgw, myhgw.home,
          myhgw.home.arpa, myhgw.isp.net.
        </description>
        <syntax>
          <string>
            <size maxLength="255"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="FirmwareImageNumberOfEntries" access="readOnly"
          version="2.12">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

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

      <parameter name="ProcessorNumberOfEntries" access="readOnly"
          version="2.1" status="deprecated">
        <description>
          {{numentries}}

          {{deprecated|2.18|because the only contained parameter,
          {{param|Processor.{i}.Architecture}}, is no longer relevant for
          modern devices.}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="LogRotateNumberOfEntries" access="readOnly"
          version="2.17">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

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

      <parameter name="LocationNumberOfEntries" access="readOnly"
          version="2.4">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="DeviceImageNumberOfEntries" access="readOnly"
          version="2.11" dmr:customNumEntriesParameter="true">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

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

    <object name="Device.DeviceInfo.VendorConfigFile.{i}." access="readOnly"
        numEntriesParameter="VendorConfigFileNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.0">
      <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 Controller to operate on these files in any way.

        {{template|VENDORCONFIGFILE-DESC}}
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="Name"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.0">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </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.

          {{template|VENDORCONFIGFILE-NAME}}
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Version" access="readOnly">
        <description>
          A string identifying the configuration file version currently used in
          the CPE.

          If the CPE is able to obtain the version of the configuration file
          from the file itself, then the value of this parameter MUST be set to
          the obtained value.

          Otherwise, the value of this parameter MUST be {{empty}}.
        </description>
        <syntax>
          <string>
            <size maxLength="16"/>
          </string>
        </syntax>
      </parameter>

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

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

      <parameter name="UseForBackupRestore" access="readOnly" version="2.7">
        <description>
          When {{true}}, this parameter indicates that this {{object}} instance
          is to be used for backup and restoration purposes.

          Note: The backup and restore operations may require the use of
          multiple {{object}} instances. In this scenario the mechanism for
          determining the order and combination of {{object}} instances used
          for backup and restoration purposes is implementation specific.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

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

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

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

      <parameter name="TotalPersistent" access="readOnly" version="2.15">
        <description>
          The sum total physical Non-Volatile Memory (NVM), in {{units}},
          installed on the device. This memory persists across reboots and can
          be used by the system, applications, or users.
        </description>
        <syntax>
          <unsignedInt>
            <units value="KiB"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="FreePersistent" access="readOnly"
          activeNotify="canDeny" version="2.15">
        <description>
          The sum total free physical Non-Volatile Memory (NVM), in {{units}},
          currently available on the device. This memory persists across
          reboots and is available for use by the system, applications, or
          users.
        </description>
        <syntax>
          <unsignedInt>
            <units value="KiB"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DeviceInfo.MemoryStatus.MemoryMonitor."
        access="readOnly" minEntries="1" maxEntries="1" version="2.18">
      <description>
        This object specifies information that the device has obtained via
        sampling the memory utilization (RAM) on the device.
      </description>

      <parameter name="Enable" access="readWrite" version="2.18">
        <description>
          Indicates whether or not memory monitoring is enabled.
        </description>
        <syntax>
          <boolean/>
          <default type="implementation" value="false"/>
        </syntax>
      </parameter>

      <parameter name="MemUtilization" access="readOnly" version="2.18">
        <description>
          Memory utilization, in {{units}}, rounded to the nearest whole
          {{units}}, is the percentage of memory used by the system which
          cannot be spontaneously reclaimed or repurposed by the system in case
          it is required. This metric is collected at the
          {{param|PollingInterval}}. This value is used to determine if a
          critical condition is reached i.e., the memory utilization exceeds
          {{param|CriticalRiseThreshold}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="100"/>
            <units value="percent"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="PollingInterval" access="readWrite" version="2.18">
        <description>
          The interval, measured in {{units}}, in which the device polls the
          memory utilization.

          If the value is 0 then the device selects its own polling interval.

          If the value is greater than 0 then the device MUST use this value as
          the polling interval.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="CriticalRiseThreshold" access="readWrite"
          version="2.18">
        <description>
          Memory utilization rise threshold {{units}} value. If the
          {{param|MemUtilization}} exceeds the rise threshold value, and the
          {{param|CriticalFallTimeStamp}} is greater than
          {{param|CriticalRiseTimeStamp}} (indicating that critical condition
          is reached), the following takes place:

          * The {{param|CriticalRiseTimeStamp}} is updated to the current time.

          * A log is generated into the vendor log file referenced by
            {{param|VendorLogFileRef}} indicating critical condition is reached
            if the {{param|EnableCriticalLog}} is {{true}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="100"/>
            <units value="percent"/>
          </unsignedInt>
          <default type="implementation" value="80"/>
        </syntax>
      </parameter>

      <parameter name="CriticalFallThreshold" access="readWrite"
          version="2.18">
        <description>
          Memory utilization fall threshold {{units}} value. If the
          {{param|MemUtilization}} falls below the fall threshold value and
          {{param|CriticalRiseTimeStamp}} is greater than
          {{param|CriticalFallTimeStamp}} (indicating that the critical
          condition is no longer present), the following takes place:

          * The {{param|CriticalFallTimeStamp}} is updated to current time.

          * A log is generated into the vendor log file referenced by
            {{object|.DeviceInfo.VendorLogFile}} indicating that the critical
            condition is no longer present if the {{param|EnableCriticalLog}}
            is {{true}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="100"/>
            <units value="percent"/>
          </unsignedInt>
          <default type="implementation" value="60"/>
        </syntax>
      </parameter>

      <parameter name="CriticalRiseTimeStamp" access="readOnly" version="2.18">
        <description>
          Last date and time when the critical condition was reached. See
          {{param|CriticalRiseThreshold}} description for more details.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="CriticalFallTimeStamp" access="readOnly" version="2.18">
        <description>
          Last date and time when the critical condition was no longer present.
          See {{param|CriticalFallThreshold}} description for more details.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="EnableCriticalLog" access="readWrite" version="2.18">
        <description>
          This parameter indicates whether a critical log needs to be generated
          in the vendor log file.

          * If the value of {{param}} is {{true}}, then a critical log is
            generated in the vendor log file.

          * If the value of {{param}} is {{false}}, then no critical log is
            generated in the vendor log file.
        </description>
        <syntax>
          <boolean/>
          <default type="implementation" value="false"/>
        </syntax>
      </parameter>

      <parameter name="VendorLogFileRef" access="readOnly" version="2.18">
        <description>
          The reference to {{object|.DeviceInfo.VendorLogFile}} is
          automatically constructed and the
          {{object|.DeviceInfo.VendorLogFile}} is populated with the
          information based on {{param|FilePath}}.

          E.g. When {{param|FilePath}} = ''file:///var/log/messages''. The
          following entry is automatically added to
          {{object|.DeviceInfo.VendorLogFile}}: ''file:///var/log/messages''.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong"
                targetParent=".DeviceInfo.VendorLogFile." targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="FilePath" access="readWrite" version="2.18">
        <description>
          Destination path and filename of where to create and keep the log
          files which MUST use the file URI scheme {{bibref|RFC8089|The file
          URI Scheme}}. This file is related to {{param|EnableCriticalLog}}.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>
    </object>

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

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

      <parameter name="ProcessNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}

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

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

    <object name="Device.DeviceInfo.ProcessStatus.CPU.{i}." access="readOnly"
        numEntriesParameter="CPUNumberOfEntries" minEntries="0"
        maxEntries="unbounded" dmr:fixedObject="true" version="2.18">
      <description>
        Each instance in the table represents a CPU on this device. Here CPU
        can imply main CPU (where system software is executed) or
        hardware/network acceleration CPU (responsible for data plane traffic).
      </description>
      <uniqueKey functional="true">
        <parameter ref="Name"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

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

      <parameter name="Enable" access="readWrite" version="2.18">
        <description>
          Enables or disables the CPU utilization monitoring.
        </description>
        <syntax>
          <boolean/>
          <default type="implementation" value="false"/>
        </syntax>
      </parameter>

      <parameter name="UpTime" access="readOnly" version="2.18">
        <description>
          Time in {{units}} since the CPU was last restarted.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="UserModeUtilization" access="readOnly" version="2.18">
        <description>
          CPU utilization, in {{units}}, rounded to the nearest whole
          {{units}}, while executing at the user level. This includes
          utilization across all cores.

          This value is calculated the same way as {{param|CPUUtilization}}.
          See {{param|CPUUtilization}} description for more details.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="100"/>
            <units value="percent"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SystemModeUtilization" access="readOnly" version="2.18">
        <description>
          CPU utilization, in {{units}}, rounded to the nearest whole
          {{units}}, while executing at the system/kernel level. Note that this
          includes the time spent servicing interrupts as well. This includes
          utilization across all cores.

          This value is calculated the same way as {{param|CPUUtilization}}.
          See {{param|CPUUtilization}} description for more details.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="100"/>
            <units value="percent"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="IdleModeUtilization" access="readOnly" version="2.18">
        <description>
          CPU utilization, in {{units}}, rounded to the nearest whole
          {{units}}, while the CPU was idle.

          This value is calculated the same way as {{param|CPUUtilization}}.
          See {{param|CPUUtilization}} description for more details.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="100"/>
            <units value="percent"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="CPUUtilization" access="readOnly" version="2.18">
        <description>
          CPU utilization, in {{units}}, rounded to the nearest whole
          {{units}}. The CPU Utilization is calculated as a moving window
          average of {{param|NumSamples}} CPU utilization samples collected at
          the {{param|PollInterval}}.

          For example, the CPU utilization is calculated as follows: CPU
          Utilization = (sample1 + sample2 + ... + sampleN)/N where N is the
          number of CPU usage samples as represented by {{param|NumSamples}}
          and sample1, sample2, ..., sampleN are CPU usage samples collected at
          every {{param|PollInterval}} seconds.

          This parameter, which reflects system and user mode CPU utilization,
          is used to determine if the CPU is in critical condition. This value
          includes system mode and user mode utilization i.e., everything
          except idle mode utilization.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="100"/>
            <units value="percent"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="PollInterval" access="readWrite" version="2.18">
        <description>
          The interval, measured in {{units}}, over which the CPU usage is
          polled.

          If the value is 0 then the device selects its own polling interval.

          If the value is greater than 0 then the device MUST use this value as
          the poll interval.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="implementation" value="5"/>
        </syntax>
      </parameter>

      <parameter name="NumSamples" access="readWrite" version="2.18">
        <description>
          This parameter indicates the number of CPU usage samples that is
          needed to calculate the average CPU utilization and populate the
          {{param|CPUUtilization}}
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="300"/>
          </unsignedInt>
          <default type="implementation" value="30"/>
        </syntax>
      </parameter>

      <parameter name="CriticalRiseThreshold" access="readWrite"
          version="2.18">
        <description>
          CPU utilization rise threshold {{units}} value. If the
          {{param|CPUUtilization}} exceeds the rise threshold value and the
          {{param|CriticalFallTimeStamp}} is greater than
          {{param|CriticalRiseTimeStamp}} (indicating that critical condition
          is reached), the following takes place:

          * The {{param|CriticalRiseTimeStamp}} is updated to the current time

          * A log is generated into the vendor log file referenced by
            {{object|###.DeviceInfo.VendorLogFile}} indicating critical
            condition is reached if the {{param|EnableCriticalLog}} is
            {{true}}. The logs generated should indicate the {{param|Name}} as
            well as the {{param|CriticalRiseTimeStamp}} of the CPU.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="100"/>
            <units value="percent"/>
          </unsignedInt>
          <default type="implementation" value="80"/>
        </syntax>
      </parameter>

      <parameter name="CriticalFallThreshold" access="readWrite"
          version="2.18">
        <description>
          CPU utilization fall threshold {{units}} value. If the
          {{param|CPUUtilization}} falls below fall threshold value and
          {{param|CriticalRiseTimeStamp}} is greater than
          {{param|CriticalFallTimeStamp}} (indicating that critical condition
          is no longer present), the following takes place:

          * The {{param|CriticalFallTimeStamp}} is updated to current time

          * A log is generated into the vendor log file referenced by
            {{object|###.DeviceInfo.VendorLogFile}} indicating the clearing of
            critical condition if the {{param|EnableCriticalLog}} is {{true}}.
            The logs generated should indicate the {{param|Name}} as well as
            the {{param|CriticalFallTimeStamp}} of the CPU.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="100"/>
            <units value="percent"/>
          </unsignedInt>
          <default type="implementation" value="60"/>
        </syntax>
      </parameter>

      <parameter name="CriticalRiseTimeStamp" access="readOnly" version="2.18">
        <description>
          Last date and time when the critical condition was reached. See
          {{param|CriticalRiseThreshold}} description for more details.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="CriticalFallTimeStamp" access="readOnly" version="2.18">
        <description>
          Last date and time when the critical condition is no longer present.
          See {{param|CriticalFallThreshold}} description for more details.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="EnableCriticalLog" access="readWrite" version="2.18">
        <description>
          This parameter indicates whether a critical log needs to be generated
          in the vendor log file.

          * If the value of {{param}} is {{true}}, then a critical log is
            generated in the vendor log file.

          * If the value of {{param}} is {{false}}, then no critical log is
            generated in the vendor log file.
        </description>
        <syntax>
          <boolean/>
          <default type="implementation" value="false"/>
        </syntax>
      </parameter>

      <parameter name="VendorLogFileRef" access="readOnly" version="2.18">
        <description>
          The reference to {{object|###.DeviceInfo.VendorLogFile}} is
          automatically constructed and the
          {{object|###.DeviceInfo.VendorLogFile}} is populated with the
          information based on {{param|FilePath}}.

          E.g. When {{param|FilePath}} = ''file:///var/log/messages''. The
          following entry is automatically added to
          {{object|###.DeviceInfo.VendorLogFile}}:
          ''file:///var/log/messages''.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong"
                targetParent=".DeviceInfo.VendorLogFile." targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="FilePath" access="readWrite" version="2.18">
        <description>
          Destination path and filename of where to create and keep the log
          files which MUST use the uri scheme file {{bibref|RFC8089|The file
          URI Scheme}}. This file is related to {{param|EnableCriticalLog}}.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>
    </object>

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

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

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

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

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

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

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

    <object name="Device.DeviceInfo.PowerStatus." access="readOnly"
        minEntries="1" maxEntries="1" version="2.19">
      <description>
        Status of the power consumption of the device.
      </description>

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

    <object name="Device.DeviceInfo.PowerStatus.PowerSensor.{i}."
        access="readOnly" minEntries="0" maxEntries="unbounded"
        numEntriesParameter="PowerSensorNumberOfEntries" version="2.19">
      <description>
        Represents the power sensor parameters including voltage, current, and
        power measurements.
      </description>
      <uniqueKey functional="true">
        <parameter ref="Name"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

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

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

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

      <parameter name="LastUpdate" access="readOnly" activeNotify="canDeny">
        <description>
          The time at which this power sensor's last good reading was obtained.

          The Unknown Time value, as defined in {{bibref|TR-106}}, indicates a
          good reading has not been obtained since last reset.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="Voltage" access="readOnly">
        <description>
          The voltage measured by the sensor, in {{units}}.
        </description>
        <syntax>
          <int>
            <units value="mV"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="Current" access="readOnly">
        <description>
          The current measured by the sensor, in {{units}}.
        </description>
        <syntax>
          <int>
            <units value="mA"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="Power" access="readOnly">
        <description>
          The power measured by the sensor, in {{units}}.
        </description>
        <syntax>
          <int>
            <units value="mW"/>
          </int>
        </syntax>
      </parameter>
    </object>

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

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

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

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

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

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

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

      <parameter name="ResetTime" access="readOnly">
        <description>
          The time at which this temperature sensor was reset.

          Reset can be caused by:

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

          * {{template|Reset}}.

          * An internal reset of the temperature sensor (including a reboot of
            the device).

          The Unknown Time value, as defined in {{bibref|TR-106}}, indicates
          that this temperature sensor has never been reset, which can only
          happen if it has never been enabled.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

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

      <parameter name="Value" access="readOnly" activeNotify="canDeny">
        <description>
          This temperature sensor's last good reading in {{units}}.

          A value of -274 (which is below absolute zero) indicates a good
          reading has not been obtained since last reset.
        </description>
        <syntax>
          <int>
            <range minInclusive="-274"/>
            <units value="degrees celsius"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="LastUpdate" access="readOnly" activeNotify="canDeny">
        <description>
          The time at which this temperature sensor's last good reading was
          obtained.

          The Unknown Time value, as defined in {{bibref|TR-106}}, indicates a
          good reading has not been obtained since last reset.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="MinValue" access="readOnly">
        <description>
          This temperature sensor's lowest value reading in {{units}} since
          last reset.

          A value of -274 (which is below absolute zero) indicates a good
          reading has not been obtained since last reset.
        </description>
        <syntax>
          <int>
            <range minInclusive="-274"/>
            <units value="degrees celsius"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="MinTime" access="readOnly">
        <description>
          The time at which this temperature sensor's lowest value was read.

          The Unknown Time value, as defined in {{bibref|TR-106}}, indicates a
          good reading has not been obtained since last reset.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="MaxValue" access="readOnly">
        <description>
          This temperature sensor's highest value reading in {{units}} since
          last reset.

          A value of -274 (which is below absolute zero) indicates a good
          reading has not been obtained since last reset.
        </description>
        <syntax>
          <int>
            <range minInclusive="-274"/>
            <units value="degrees celsius"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="MaxTime" access="readOnly">
        <description>
          The time at which this temperature sensor's highest value was read.

          The Unknown Time value, as defined in {{bibref|TR-106}}, indicates a
          good reading has not been obtained since last reset.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="LowAlarmValue" access="readWrite">
        <description>
          This temperature sensor's low alarm value in {{units}}.

          A value of -274 (which is below absolute zero) indicates a non
          configured value.

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

      <parameter name="LowAlarmTime" access="readOnly">
        <description>
          Initial time at which this temperature sensor's
          {{param|LowAlarmValue}} was encountered.

          This value is only set the first time the alarm is seen and not
          changed until the next reset.

          The Unknown Time value, as defined in {{bibref|TR-106}}, indicates
          that an alarm has not been encountered since the last reset.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="HighAlarmValue" access="readWrite">
        <description>
          This temperature sensor's high alarm value in {{units}}.

          A value of -274 (which is below absolute zero) indicates a non
          configured value.

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

      <parameter name="PollingInterval" access="readWrite" version="2.1">
        <description>
          The interval, measured in {{units}}, in which the device polls this
          {{object}}.

          If the value is 0 then the device selects its own polling interval.

          If the value is greater than 0 then the device MUST use this value as
          the polling interval.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="HighAlarmTime" access="readOnly">
        <description>
          Initial time at which this temperature sensor's
          {{param|HighAlarmValue}} was encountered.

          This value is only set the first time the alarm is seen and not
          changed until the next reset.

          The Unknown Time value, as defined in {{bibref|TR-106}}, indicates
          that an alarm has not been encountered since the last reset.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>
    </object>

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

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

      <parameter name="TCPImplementation" access="readOnly">
        <description>
          {{list}} Indicates the TCP congestion control mechanism(s)
          implemented. {{enum}}

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

    <object name="Device.DeviceInfo.Processor.{i}." access="readOnly"
        numEntriesParameter="ProcessorNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.1" status="deprecated">
      <description>
        Each table entry represents a hardware or virtual processor that
        resides on this device.

        {{deprecated|2.18|because the only contained parameter,
        {{param|Architecture}}, is no longer relevant for modern devices.}}
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="Architecture" access="readOnly">
        <description>
          The architecture of the processor on the underlying hardware.
          {{enum}}

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

    <object name="Device.DeviceInfo.LogRotate.{i}." access="readWrite"
        enableParameter="Enable" numEntriesParameter="LogRotateNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.17">
      <description>
        This Object details the available rotation settings for vendor log file
        rotation.

        Based on {{bibref|YANGSYSLOG|A YANG Data Model for Syslog
        Configuration}}.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="Name"/>
      </uniqueKey>

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

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the log rotation functionality for this item.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Name" access="readWrite">
        <description>
          Specifies the full path and filename of the log file that must be
          rotated. Which MUST use the uri scheme file {{bibref|RFC8089|The file
          URI Scheme}}.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="NumberOfFiles" access="readWrite">
        <description>
          Specifies the maximum number of log files retained. When during log
          rotation the maximum number of log files is reached, the oldest log
          file will be deleted.

          Specify ''1'' for implementations that only support one log file.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MaxFileSize" access="readWrite">
        <description>
          Specifies the maximum log file size in {{units}}. Log events that
          arrive after the maximum file size is reached will cause the current
          log file to be closed and a new log file to be opened.
        </description>
        <syntax>
          <unsignedInt>
            <units value="KiB"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RollOver" access="readWrite">
        <description>
          Specifies the length of time, in {{units}}, that log events should be
          written to a specific log file. Log events that arrive after the
          rollover period cause the current log file to be closed and a new log
          file to be opened.
        </description>
        <syntax>
          <unsignedInt>
            <units value="minutes"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Retention" access="readWrite">
        <description>
          Specifies the length of time, in {{units}}, that completed/closed log
          event files should be stored in the file system before they are
          removed.
        </description>
        <syntax>
          <unsignedInt>
            <units value="minutes"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Compression" access="readWrite">
        <description>
          Specifies the post-rotation compression method that must be applied
          exclusively on the initial log file in a rotation sequence.
        </description>
        <syntax>
          <string>
            <enumeration value="None"/>
            <enumeration value="GZIP"/>
            <enumeration value="BZIP2"/>
            <enumeration value="LZO"/>
            <enumeration value="XZ"/>
            <enumeration value="ZSTD"/>
          </string>
          <default type="object" value="None"/>
        </syntax>
      </parameter>

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

    <object name="Device.DeviceInfo.LogRotate.{i}.LogFile.{i}."
        access="readOnly" numEntriesParameter="LogFileNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.17">
      <description>
        Each table entry represents a Log File.

        This table of log files is informational only and does not allow the
        Controller to operate on these files in any way.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="Name"/>
      </uniqueKey>

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

      <parameter name="Name" access="readOnly">
        <description>
          Name of the rotated log file stored within the same directory that
          {{param|#.Name}} is specified. Which MUST use the uri scheme file
          {{bibref|RFC8089|The file URI Scheme}}.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

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

      <parameter name="LastChange" access="readOnly" activeNotify="canDeny">
        <description>
          Last modification date of the file specified by {{param|Name}}.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DeviceInfo.VendorLogFile.{i}." access="readOnly"
        numEntriesParameter="VendorLogFileNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.1">
      <description>
        Each table entry represents a Vendor Log File.

        This table of log files is informational only and does not allow the
        Controller to operate on these files in any way.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="Name"/>
      </uniqueKey>

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

      <parameter name="Name" access="readOnly">
        <description>
          Name of the log file.

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

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

      <parameter name="Persistent" access="readOnly">
        <description>
          When {{true}}, the log file contents are preserved across a device
          reboot.

          When {{false}}, the log file contents will be purged when the device
          is rebooted.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

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

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

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

      <parameter name="ExternalSource" access="readOnly">
        <description>
          URL, MAC address, or other identifier that identifies an "External"
          source of this location.

          Meaningful only if {{param|Source}} has a value of
          {{enum|External|Source}}, otherwise it MUST be {{empty}}.

          If {{param|ExternalProtocol}} has a value of
          {{enum|CWMP|ExternalProtocol}}, this is the URL or IP address of the
          Controller.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="ExternalProtocol" access="readOnly">
        <description>
          Protocol used to acquire a location from an "External" source.
          {{enum}}

          Meaningful only if {{param|Source}} has a value of
          {{enum|External|Source}}, otherwise it MUST be {{empty}}.
        </description>
        <syntax>
          <string>
            <enumeration value="">
              <description>{{empty}}</description>
            </enumeration>
            <enumeration value="CWMP"/>
            <enumeration value="USP" version="2.13"/>
            <enumeration value="OMA-DM"/>
            <enumeration value="SNMP"/>
            <enumeration value="UPnP"/>
            <enumeration value="HELD"/>
            <enumeration value="DHCPv4"/>
            <enumeration value="DHCPv6"/>
            <enumeration value="LLDP-MED"/>
            <enumeration value="MLP"/>
            <enumeration value="Other"/>
          </string>
          <default type="object" value="CWMP"/>
        </syntax>
      </parameter>

      <parameter name="DataObject" access="readWrite">
        <description>
          The currently valid location information.

          Writable only when {{param|ExternalProtocol}} has a value of
          {{enum|CWMP|ExternalProtocol}} or {{enum|USP|ExternalProtocol}}.

          If obtained through the local GPS/AGPS then the location information
          is formatted according to {{bibref|RFC5491}}.

          If manually configured then location information will be
          XML-formatted according to {{bibref|RFC5491}} (geographical
          information) and {{bibref|RFC5139}} (civic addresses).

          If obtained by an external source this is the location information as
          received.

          If it's an XML document (e.g. CWMP, OMA-DM, UPnP, HELD, MLP) the
          location information will be represented as-is, otherwise it will be
          converted to base64.

          CWMP or USP configured location information will be XML-formatted
          according to {{bibref|RFC5491}} (geographical information) and
          {{bibref|RFC5139}} (civic addresses).

          Only zero or one Location object instance with value
          {{enum|CWMP|ExternalProtocol}} or {{enum|USP|ExternalProtocol}} MUST
          exist at any given time.
        </description>
        <syntax>
          <string>
            <size maxLength="1200"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DeviceInfo.DeviceImageFile.{i}." access="readOnly"
        numEntriesParameter="DeviceImageNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.11">
      <description>
        This object describes an image of the device.
      </description>
      <uniqueKey functional="true">
        <parameter ref="Location"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="Location" access="readOnly">
        <description>
          The location of the device that represents the image as the user
          looks at the front of the device in its typical orientation (e.g.,
          on-end, flat).
        </description>
        <syntax>
          <string>
            <enumeration value="Front"/>
            <enumeration value="Back"/>
            <enumeration value="Left"/>
            <enumeration value="Right"/>
            <enumeration value="Top"/>
            <enumeration value="Bottom"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Image" access="readOnly">
        <description>
          The device image in PNG, JPEG or GIF format.
        </description>
        <syntax>
          <base64/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DeviceInfo.FirmwareImage.{i}." access="readOnly"
        numEntriesParameter="FirmwareImageNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.12">
      <description>
        Top-level object for mapping firmware images.

        This is a static table – the number of object instances in this table
        is defined by the firmware that is currently running.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="Name" access="readOnly">
        <description>
          Firmware/software image name. Descriptive text of the image or
          filename.

          The value of {{param}} is {{empty}} if {{param|Status}} is anything
          other than {{enum|Active|Status}}, {{enum|Available|Status}},
          {{enum|InstallationFailed|Status}}, or
          {{enum|ActivationFailed|Status}}.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Version" access="readOnly">
        <description>
          A string identifying the version of the firmware image represented by
          this {{object}}. Whenever this firmware image is active (ie, the
          device has booted this firmware image), the value of the
          {{param|#.SoftwareVersion}} parameter MUST be the same as the value
          contained in this parameter.

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

          The value of {{param}} is {{empty}} if {{param|Status}} is anything
          other than {{enum|Available|Status}},
          {{enum|InstallationFailed|Status}}, or
          {{enum|ActivationFailed|Status}}.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Available" access="readWrite">
        <description>
          Specifies whether or not this particular firmware image can be used
          by the Agent. An Agent will only attempt to boot this particular
          firmware image if this parameter value is set to {{true}}.

          This value MUST be set to {{true}} by the device whenever a new
          firmware image is installed.

          This value cannot be set to {{false}} if the firmware image is active
          or is referenced by the {{param|#.BootFirmwareImage}} parameter.

          Firmware image instances cannot be deleted, so a Controller MAY use
          this parameter to subsequently mark a particular firmware as being
          invalid, which will prevent the Agent from attempting to boot it.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          Status of the firmware image, as determined by the Agent. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="NoImage">
              <description>
                This Firmware Image instance is empty.

                This value could happen on an Agent that supports multiple
                firmware images, but only has a single image installed.
              </description>
            </enumeration>
            <enumeration value="Active" version="2.14">
              <description>
                This Firmware Image instance is the currently active image.
              </description>
            </enumeration>
            <enumeration value="Downloading">
              <description>
                This Firmware Image instance is being downloaded.
              </description>
            </enumeration>
            <enumeration value="Validating">
              <description>
                This Firmware Image instance has been downloaded, and is in the
                process of being validated.
              </description>
            </enumeration>
            <enumeration value="Available">
              <description>
                This Firmware Image instance has been downloaded, validated,
                and installed, and is ready to be activated.
              </description>
            </enumeration>
            <enumeration value="DownloadFailed">
              <description>
                The Agent has attempted to download this Firmware Image
                instance, but ultimately failed while retrieving it from the
                source URL.
              </description>
            </enumeration>
            <enumeration value="ValidationFailed">
              <description>
                The Agent has attempted to validate a Firmware Image downloaded
                to this instance, but ultimately failed while validating it.
              </description>
            </enumeration>
            <enumeration value="InstallationFailed">
              <description>
                The Agent has attempted to install a Firmware Image downloaded
                and validated to this instance, but ultimately failed while
                installing it.
              </description>
            </enumeration>
            <enumeration value="ActivationFailed">
              <description>
                The Agent has attempted to activate this Firmware Image
                instance, but ultimately the activation failed.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="BootFailureLog" access="readOnly">
        <description>
          If the Agent is unable to boot into this firmware image, when
          specified, the Agent can use this parameter to record some
          information as to why the boot failed.

          If the Agent successfully boots into this firmware, the value of this
          parameter SHOULD be {{empty}}. When a new firmware image is installed
          into this object instance, this parameter MUST be cleared.

          The length of this string is defined as implementation-specific by
          the Agent.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DeviceInfo.KernelFaults." access="readOnly"
        version="2.17">
      <description>
        A fault in the context of the Kernel refers to a situation where the
        kernel encounters a critical error or a bug that it cannot recover
        from. When this happens, the kernel generates a "fault message" or
        "kernel panic", which provides information about the error, the state
        of the system at the time of the error, and a stack trace of function
        calls leading up to the error.
      </description>

      <parameter name="StoragePath" access="readOnly">
        <description>
          Path where the Kernel faults logs must be stored.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="LastUpgradeCount" access="readOnly">
        <description>
          Total number of Kernel faults which occurred since last firmware
          upgrade.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PreviousBootCount" access="readOnly">
        <description>
          The number of Kernel faults which occurred during the previous boot
          cycle.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MinFreeSpace" access="readWrite">
        <description>
          Minimum free space in {{units}} on the device that must be free
          before attempting to create a {{object|KernelFault}} instance. This
          setting does not affect the counting of Kernel faults.
        </description>
        <syntax>
          <unsignedInt>
            <units value="KiB"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RotateKernelFaultEntries" access="readWrite"
          version="2.19">
        <description>
          When enabled and once the maximum {{object|KernelFault}} entries as
          indicated by {{param|MaxKernelFaultEntries}} are reached, the oldest
          entry, determined by {{param|KernelFault.{i}.TimeStamp}}, is removed
          to make space for a new one, which is assigned a new instance
          identifier and a new {{param|KernelFault.{i}.Alias}}.

          This setting does not affect the counting of Kernel faults.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MaxKernelFaultEntries" access="readWrite">
        <description>
          The maximum number of entries available in the {{object|KernelFault}}
          table. Defines the maximum number of {{object|KernelFault}} instances
          that can be stored on the device.

          When {{param|RotateKernelFaultEntries}} is {{false}} and this limit
          is hit, no new {{object|KernelFault}} instances will be created until
          sufficient Kernel fault instances are removed. When
          {{param|RotateKernelFaultEntries}} is {{true}} and this limit is hit,
          the table {{object|KernelFault}} is rotated as specified by
          {{param|RotateKernelFaultEntries}}. Set this parameter to 0 to
          completely disable the creation of {{object|KernelFault}} instances.

          Reducing the {{param}} will cause for the implementation to delete
          the oldest {{object|KernelFault}} instances.

          This setting does not affect the counting of Kernel faults.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

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

    <object name="Device.DeviceInfo.KernelFaults.KernelFault.{i}."
        access="readOnly" numEntriesParameter="KernelFaultNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.17">
      <description>
        Each table entry represents a Kernel fault that is stored on the
        device.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="FaultLocation" access="readOnly">
        <description>
          Specifies the location of where to create and keep the logs. Can
          either be a relative path or file within the {{param|#.StoragePath}}
          location.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="LastInstruction" access="readOnly">
        <description>
          The last instruction executed when the Kernel fault was triggered.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="TimeStamp" access="readOnly">
        <description>
          The time when the Kernel fault was registered.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="FirmwareVersion" access="readOnly">
        <description>
          The firmware version that triggered the Kernel fault.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="ProcessName" access="readOnly">
        <description>
          The name of the process that was active while the kernel fault
          occurred.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="Reason" access="readOnly">
        <description>
          The reason why the kernel fault occurred.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DeviceInfo.ProcessFaults." access="readOnly"
        version="2.17">
      <description>
        Monitoring process faults and configuring the operating system to
        generate crash dumps and core files is essential for diagnosing and
        troubleshooting issues with applications and processes.
      </description>

      <parameter name="StoragePath" access="readOnly">
        <description>
          Path where the process fault logs must be stored.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="LastUpgradeCount" access="readOnly">
        <description>
          Total number of process faults which occurred since last firmware
          upgrade.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PreviousBootCount" access="readOnly">
        <description>
          The number of process faults which occurred during the previous boot
          cycle.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MinFreeSpace" access="readWrite">
        <description>
          Minimum free space in {{units}} on the device that must be free
          before attempting to create a {{object|ProcessFault}} instance. This
          setting does not affect the counting of process faults.
        </description>
        <syntax>
          <unsignedInt>
            <units value="KiB"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RotateProcessFaultEntries" access="readWrite"
          version="2.19">
        <description>
          When enabled and once the maximum {{object|ProcessFault}} entries as
          indicated by {{param|MaxProcessFaultEntries}} are reached, the oldest
          entry, determined by {{param|ProcessFault.{i}.TimeStamp}}, is removed
          to make space for a new one, which is assigned a new instance
          identifier and a new {{param|ProcessFault.{i}.Alias}}.

          This setting does not affect the counting of Process faults.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MaxProcessFaultEntries" access="readWrite">
        <description>
          The maximum number of entries available in the
          {{object|ProcessFault}} table. Defines the maximum number of
          {{object|ProcessFault}} instances that can be stored on the device.

          When {{param|RotateProcessFaultEntries}} is {{false}} and this limit
          is hit, no new {{object|ProcessFault}} instances will be created
          until sufficient Process fault instances are removed. When
          {{param|RotateProcessFaultEntries}} is {{true}} and this limit is
          hit, the table {{object|ProcessFault}} is rotated as specified by
          {{param|RotateProcessFaultEntries}}. Set this parameter to 0 to
          completely disable the creation of {{object|ProcessFault}} instances.

          Reducing the {{param}} will cause for the implementation to delete
          the oldest {{object|ProcessFault}} instances.

          This setting does not affect the counting of process faults.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

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

    <object name="Device.DeviceInfo.ProcessFaults.ProcessFault.{i}."
        access="readOnly" numEntriesParameter="ProcessFaultNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.17">
      <description>
        Each table entry represents a process fault that is stored on the
        device.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="ProcessID" access="readOnly">
        <description>
          Process ID of the process that crashed.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="ProcessName" access="readOnly">
        <description>
          Process Name of the process that crashed.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="FaultLocation" access="readOnly">
        <description>
          Specifies the location of where to create and keep the process fault
          logs. Can either be a relative path or file within the
          {{param|#.StoragePath}} location.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="TimeStamp" access="readOnly">
        <description>
          The time when the process fault occurred.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="FirmwareVersion" access="readOnly">
        <description>
          The firmware version that triggered the process fault.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="Arguments" access="readOnly">
        <description>
          The command arguments that were used to start to the process.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="Reason" access="readOnly">
        <description>
          The reason why the process fault occurred.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DeviceInfo.SupportedDataModel.{i}." access="readOnly"
        numEntriesParameter="SupportedDataModelNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.0">
      <description>
        This table contains details of the device's Current Supported Data
        Model.

        The table MUST describe the device's entire Supported Data Model.
        Therefore, if a device's Supported Data Model changes at run-time,
        entries will need to be added or removed as appropriate.

        Each table entry MUST refer to only a single Root Object or Service
        Object. The device MAY choose to use more than one table entry for a
        given Root Object or Service Object.

        Considering that every device has some form of a data model, this table
        MUST NOT be empty.
      </description>
      <uniqueKey functional="true">
        <parameter ref="URL"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="UUID"/>
      </uniqueKey>

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

      <parameter name="URL" access="readOnly">
        <description>
          The {{datatype}} that describes some or all of the device's currently
          Supported Data Model.

          The URL MUST reference an XML file which describes the appropriate
          part of the Supported Data Model.

          The referenced XML file MUST be compliant with the DT (Device Type)
          Schema that is described in {{bibref|TR-106|Annex B}}, including any
          additional normative requirements referenced within the Schema.

          The XML file referenced by this URL MUST NOT change while the CPE is
          running, and SHOULD NOT change across a CPE reboot. Note that
          {{param|UUID}} is a unique key, so the XML file referenced by this
          URL will never change.

          The XML file MAY be located within the CPE. In this scenario the CPE
          MAY use the value of "localhost" as URL host portion, When the
          "localhost" value is used, the ACS has the responsibility to
          substitute the "localhost" value with the host portion of the
          connection request URL.

          Behavior in the event of an invalid URL, failure to access the
          referenced XML file, or an invalid XML file, is
          implementation-dependent.
        </description>
        <syntax>
          <dataType ref="URL"/>
        </syntax>
      </parameter>

      <parameter name="UUID" access="readOnly" version="2.6">
        <description>
          UUID ({{bibref|RFC4122}}) that is the value of the uuid attribute in
          the DT Instance referenced by {{param|URL}}.
        </description>
        <syntax>
          <dataType ref="UUID"/>
        </syntax>
      </parameter>

      <parameter name="URN" access="readOnly">
        <description>
          URN ({{bibref|RFC3986}}) that is the value of the spec attribute in
          the DM (data model) Instance that defines the Root Object or Service
          Object referenced by this table entry.

          For example, if this table entry references a DT Instance that refers
          to the ''Device:2.13'' Root Object, the value of this parameter would
          be ''urn:broadband-forum-org:tr-181-2-13-0''. If the DT Instance
          instead referred to a vendor-specific Root Object, e.g.
          ''X_EXAMPLE_Device:1.0'' (derived from ''Device:1.3''), the value of
          this parameter would be something like
          ''urn:example-com:device-1-0-0''.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

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

          For example, if the DT instance specified the following:

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

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

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

          then the value of this parameter might be
          ''DNSServer,Router,X_MyDeviceFeature''. The order in which the
          features are listed is not significant.
        </description>
        <syntax>
          <list/>
          <string/>
        </syntax>
      </parameter>
    </object>

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

      <parameter name="ManufacturerOUI" access="readOnly">
        <description>
          Organizationally unique identifier of the associated CPE Proxier.
          Represented as a six hexadecimal-digit value using all upper-case
          letters and including any leading zeros. {{pattern}}

          The value MUST be a valid OUI as defined in {{bibref|OUI}}.
        </description>
        <syntax>
          <string>
            <size minLength="6" maxLength="6"/>
            <pattern value="[0-9A-F]{6}"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ProductClass" access="readOnly">
        <description>
          Identifier of the class of product of the associated CPE Proxier for
          which the serial number applies.

          {{empty}} indicates either that the CPE Proxier does not use a
          product class to differentiate its serial number.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

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

      <parameter name="ProxyProtocol" access="readOnly">
        <description>
          The protocol being used to communicate between the CPE Proxier and
          this Proxied Device. {{enum}}

          Vendors can extend the enumerated values with vendor specific
          extensions, in which case the rules outlined in {{bibref|TR-106|3.3}}
          MUST be adhered to.
        </description>
        <syntax>
          <string>
            <enumeration value="Z-Wave">
              <description>see {{bibref|Z-Wave}}</description>
            </enumeration>
            <enumeration value="ZigBee">
              <description>see {{bibref|ZigBee}}</description>
            </enumeration>
            <enumeration value="UPnP-DM">
              <description>see {{bibref|UPnP-DM:1}}</description>
            </enumeration>
            <enumeration value="ETSI-M2M">
              <description>see {{bibref|ETSIM2MFA}}</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.ManagementServer." access="readOnly" minEntries="1"
        maxEntries="1" version="2.0"
        dmr:previousObject="Device.DeviceInfo.ProxierInfo.">
      <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>
          The {{datatype}} 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>
          <dataType ref="URL"/>
        </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="ScheduleReboot" access="readWrite" version="2.10">
        <description>
          An absolute date and time in UTC at which time the CPE will perform a
          reboot.

          If a CWMP session is in progress at the specified time, the CPE MUST
          wait until the session has ended before performing the reboot.

          If the value specifies a date and time that has already passed (i.e.,
          a past date and time), no reboot will be performed.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="DelayReboot" access="readWrite" version="2.10">
        <description>
          The number of {{units}} from the time the CWMP session in which this
          parameter value is set is ended until the CPE performs a reboot.

          Whenever the CPE reboots, this value MUST be reset by the CPE to -1.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
            <units value="seconds"/>
          </int>
        </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-106|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"
          activeNotify="forceDefaultEnabled" forcedInform="true">
        <description>
          The HTTP {{datatype}} for an ACS to make a Connection Request
          notification to the CPE.

          In the form:

          : http://host:port/path

          The ''host'' portion of the URL MAY be the IP address for the
          management interface of the CPE in lieu of a host name.

          Note: If the ''host'' portion of the URL is a literal IPv6 address
          then it MUST be enclosed in square brackets (see
          {{bibref|RFC3986|Section 3.2.2}}).
        </description>
        <syntax>
          <dataType ref="URL"/>
        </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 {{datatype}} 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>
          <dataType ref="URL"/>
        </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 {{datatype}} 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>
          <dataType ref="URL"/>
        </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-069|section 3.2.1.1}}.

          A value of 5 corresponds to the default behavior that is described in
          {{bibref|TR-069}}.

          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-069|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-069}}.

          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="HTTPConnectionRequestEnable" access="readWrite"
          version="2.11">
        <description>
          Enables or disables HTTP connection request handling on the CPE.

          If HTTP connection request handling is disabled ({{param}} is set to
          {{false}}), {{param|ConnectionRequestURL}} MUST be set to {{empty}}
          and the CPE MUST close the port used by the HTTP connection request
          server.
        </description>
        <syntax>
          <boolean/>
          <default type="factory" value="true"/>
        </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-069|Annex G}}).

          This parameter is represented in the form of an Authority element as
          defined in {{bibref|RFC3986}}. The value MUST be in one of the
          following two forms:

          : host:port

          : host

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

          * When {{param|STUNEnable}} is {{false}}, the ''host'' and ''port''
            portions of the URL MUST represent the local IP address and port on
            which the CPE is listening for UDP Connection Request messages.

          The second form of this parameter MAY be used only if the port value
          is equal to ''80''.

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

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

      <parameter name="STUNServerAddress" access="readWrite">
        <description>
          Host name or IP address of the STUN server for the CPE to send
          Binding Requests if STUN is enabled via {{param|STUNEnable}}.

          If is {{empty}} and {{param|STUNEnable}} is {{true}}, the CPE MUST
          use the address of the ACS extracted from the host portion of the ACS
          URL.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="STUNServerPort" access="readWrite">
        <description>
          Port number of the STUN server for the CPE to send Binding Requests
          if STUN is enabled via {{param|STUNEnable}}.

          By default, this SHOULD be the equal to the default STUN port, 3478.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="STUNUsername" access="readWrite">
        <description>
          If is not {{empty}}, the value of the STUN USERNAME attribute to be
          used in Binding Requests (only if message integrity has been
          requested by the STUN server).

          If is {{empty}}, the CPE MUST NOT send STUN Binding Requests with
          message integrity.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

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

      <parameter name="STUNMaximumKeepAlivePeriod" access="readWrite">
        <description>
          If STUN Is enabled, the maximum period, in {{units}}, that STUN
          Binding Requests MUST be sent by the CPE for the purpose of
          maintaining the binding in the Gateway. This applies specifically to
          Binding Requests sent from the UDP Connection Request address and
          port.

          A value of -1 indicates that no maximum period is specified.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
            <units value="seconds"/>
          </int>
        </syntax>
      </parameter>

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

      <parameter name="NATDetected" access="readOnly">
        <description>
          When STUN is enabled, this parameter indicates whether or not the CPE
          has detected address and/or port mapping in use.

          A {{true}} value indicates that the received MAPPED-ADDRESS in the
          most recent Binding Response differs from the CPE's source address
          and port.

          When {{param|STUNEnable}} is {{false}}, this value MUST be {{false}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="AliasBasedAddressing" access="readOnly"
          forcedInform="true" version="2.3">
        <description>
          Indicates whether or not the Alias-Based Addressing Mechanism is
          supported.

          A {{true}} value indicates that the CPE supports the Alias-Based
          Addressing Mechanism, as defined in {{bibref|TR-069|3.6.1}} and
          described in {{bibref|TR-069|Appendix II}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="InstanceMode" access="readWrite" version="2.3">
        <description>
          Instance identification mode as defined in {{bibref|TR-069|3.6.1}}.
          When {{param|AliasBasedAddressing}} is {{true}}, {{param}} is used by
          the ACS to control whether the CPE will use Instance Numbers or
          Instance Aliases in returned Path Names. {{enum}}

          This parameter is REQUIRED for any CPE supporting Alias-Based
          Addressing.
        </description>
        <syntax>
          <string>
            <enumeration value="InstanceNumber"/>
            <enumeration value="InstanceAlias"/>
          </string>
          <default type="factory" value="InstanceNumber"/>
        </syntax>
      </parameter>

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

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

          *A {{false}} value indicates that the CPE will not create new object
           instances. Instead, it will reject the setting of parameters in
           unrecognized instances and respond with a fault code.

          This parameter is REQUIRED for any CPE supporting Alias-Based
          Addressing.
        </description>
        <syntax>
          <boolean/>
          <default type="factory" value="false"/>
        </syntax>
      </parameter>

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

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

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

      <parameter name="VirtualDeviceNumberOfEntries" access="readOnly"
          version="2.3">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SupportedConnReqMethods" access="readOnly"
          version="2.7">
        <description>
          The connection request methods supported by this {{object}}. {{enum}}
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="HTTP">
              <description>
                The connection request method as specified in
                {{bibref|TR-069|Section 3.2.2 ACS Connection Initiation}},
                '''REQUIRED'''
              </description>
            </enumeration>
            <enumeration value="STUN" optional="true">
              <description>
                The connection request method as specified in
                {{bibref|TR-069|Annex G Connection Request via NAT Gateway}}
              </description>
            </enumeration>
            <enumeration value="XMPP" optional="true">
              <description>
                The connection request method as specified in
                {{bibref|TR-069|Annex K XMPP Connection Request}}
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="ConnReqXMPPConnection" access="readWrite" version="2.7">
        <description>
          {{reference|the {{object|#.XMPP.Connection}} instance that is used
          for connection requests to this {{object}}}}
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="#.XMPP.Connection."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ConnReqAllowedJabberIDs" access="readWrite"
          version="2.7">
        <description>
          When an XMPP Connection Request is sent to a CPE the XMPP IQ Stanza
          will contain a "from" address that contains the Jabber ID of the
          initiating entity.

          This parameter is a {{list}} Each entry represents a Jabber ID, or
          address, that is allowed to initiate an XMPP Connection Request.

          Each Jabber ID is allowed to be either a "Full JID" (containing a
          local-part, domain-part, and resource-part in the following format:
          "local-part@domain-part/resource-part") or a "Bare JID" (containing a
          local-part and a domain-part in the following format:
          "local-part@domain-part"). "Full JID" entries require an exact match
          whereas "Bare JID" entries are a wildcard match and will match any
          Jabber ID with the same local-part and domain-part independent of the
          resource-part.

          For example, if {{param}} contained "ACS1@tr069.example.com,
          ACS2@tr-069.example.com/resource1" then the following incoming "from"
          addresses would be '''allowed''':

          * "ACS1@tr069.example.com/resource1"

          * "ACS1@tr069.example.com/resource2"

          * "ACS2@tr069.example.com/resource1"

          And the following incoming "from" addresses '''would not be
          allowed''':

          * "ACS2@tr069.example.com/resource2"

          * "ACS@tr069.example.com/resource"

          If this Parameter is {{empty}} then all Jabber IDs are allowed and an
          XMPP Connection Request can not be deemed invalid due to the "from"
          address.
        </description>
        <syntax>
          <list maxItems="32">
            <size/>
          </list>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ConnReqJabberID" access="readOnly"
          activeNotify="forceDefaultEnabled" version="2.7">
        <description>
          The value MUST be the value of the
          {{param|#.XMPP.Connection.{i}.JabberID}} contained in the
          {{object|#.XMPP.Connection}} instance referenced by the
          {{param|ConnReqXMPPConnection}} parameter.

          If the {{param|ConnReqXMPPConnection}} parameter is empty or the
          {{object|#.XMPP.Connection}} instance being reference is disabled,
          then this value will be empty.

          If the {{object|#.XMPP.Connection}} instance being referenced by the
          {{param|ConnReqXMPPConnection}} parameter is lost
          ({{param|#.XMPP.Connection.{i}.Status}} parameter changes from
          Enabled to some other value), then the value of this parameter MUST
          remain unchanged until the connection can be reestablished and a new
          {{param|#.XMPP.Connection.{i}.JabberID}} can be established. If the
          new {{param|#.XMPP.Connection.{i}.JabberID}} is identical to the
          existing value, then the value of this parameter MUST NOT be altered
          and a VALUE CHANGE event MUST NOT be generated.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="HTTPCompressionSupported" access="readOnly"
          version="2.7">
        <description>
          Indicates the HTTP Compression mechanism(s) supported by this CPE.
          Requirements for the use of HTTP Compression for CWMP can be found in
          {{bibref|TR-069|Section 3.4.7}}. {{enum}}

          Vendors can extend the enumerated values with vendor specific
          extensions, in which case the rules outlined in
          {{bibref|TR-106|Section 3.3}} MUST be adhered to.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="GZIP">
              <description>
                As defined in {{bibref|RFC2616|Section 3.5}}
              </description>
            </enumeration>
            <enumeration value="Compress">
              <description>
                As defined in {{bibref|RFC2616|Section 3.5}}
              </description>
            </enumeration>
            <enumeration value="Deflate">
              <description>
                As defined in {{bibref|RFC2616|Section 3.5}}
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="HTTPCompression" access="readWrite" version="2.7">
        <description>
          The value of this parameter represents the HTTP Compression mechanism
          to be used by the CPE when communicating with the ACS.
        </description>
        <syntax>
          <string>
            <enumerationRef targetParam="HTTPCompressionSupported"
                nullValue="Disabled"/>
          </string>
          <default type="factory" value="Disabled"/>
        </syntax>
      </parameter>

      <parameter name="LightweightNotificationProtocolsSupported"
          access="readOnly" version="2.7">
        <description>
          Indicates the Lightweight Notification Protocol(s) supported by this
          CPE. {{enum}}

          Vendors can extend the enumerated values with vendor specific
          extensions, in which case the rules outlined in
          {{bibref|TR-106|Section 3.3}} MUST be adhered to.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="UDP">
              <description>
                As defined in {{bibref|TR-069|Annex M}}
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="LightweightNotificationProtocolsUsed"
          access="readWrite" version="2.7">
        <description>
          The value of this parameter represents the protocol(s) that will be
          used by the CPE when sending Lightweight Notifications.

          {{empty}} means that Lightweight Notifications are disabled, despite
          any SetParameterAttributes that have been configured on various
          parameters.
        </description>
        <syntax>
          <list/>
          <string>
            <enumerationRef
                targetParam="LightweightNotificationProtocolsSupported"
                nullValue=""/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LightweightNotificationTriggerInterval"
          access="readWrite" version="2.12">
        <description>
          The duration in {{units}} of the interval for which the CPE MUST
          attempt to deliver any pending Passive Lightweight Notifications.

          A value of 0 means that the trigger interval is effectively disabled.
          In this case pending Passive Lightweight Notifications are only sent
          when triggered by an Active Lightweight Notification.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0"/>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LightweightNotificationTriggerTime" access="readWrite"
          version="2.12">
        <description>
          An absolute time reference in UTC to determine when the CPE will
          initiate the Lightweight Notification (in the case that there are
          pending Passive Lightweight Notifications that need to be delivered).
          Each Passive Lightweight Notification (that is waiting for the
          Lightweight Notification Trigger mechanism for delivery) MUST occur
          at this reference time plus or minus an integer multiple of the
          {{param|LightweightNotificationTriggerInterval}}. {{param}} is used
          only to set the ''phase'' of the Passive Lightweight Notification.
          The actual value of {{param}} can be arbitrarily far into the past or
          future.

          For example, if {{param|LightweightNotificationTriggerInterval}} is
          86400 (a day) and if {{param}} is set to UTC midnight on some day (in
          the past, present, or future) then Lightweight Notifications for
          pending Passive Lightweight Notifications 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-106|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|LightweightNotificationTriggerInterval}}. If absolute time is
          not available to the CPE, its Lightweight Notifications behavior MUST
          be the same as if the {{param}} parameter was set to the Unknown Time
          value.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="UDPLightweightNotificationHost" access="readWrite"
          version="2.7">
        <description>
          Host name or address to be used when sending the UDP Lightweight
          Notifications.

          {{param}} is only applicable when
          {{param|LightweightNotificationProtocolsUsed}} contains the
          {{enum|UDP|LightweightNotificationProtocolsUsed}} enumeration.

          If {{param}} is not implemented or is {{empty}}, and UDP Lightweight
          Notifications are supported, the destination host MUST be the same as
          the ACS (as contained in the host portion of the {{param|URL}}).
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="UDPLightweightNotificationPort" access="readWrite"
          version="2.7">
        <description>
          The port number to be used when sending UDP Lightweight
          Notifications.

          {{param}} is only applicable when
          {{param|LightweightNotificationProtocolsUsed}} contains the
          {{enum|UDP|LightweightNotificationProtocolsUsed}} enumeration.

          If {{param}} is not implemented and UDP Lightweight Notifications are
          supported, the destination port MUST be 7547.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="InstanceWildcardsSupported" access="readOnly"
          version="2.12">
        <description>
          Indicates whether or not instance wildcards are supported.

          A {{true}} value indicates that the CPE supports instance wildcards
          for GPV, GPN and GPA RPC calls, as defined in [TR-069].
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

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

    <object name="Device.ManagementServer.ManageableDevice.{i}."
        access="readOnly" numEntriesParameter="ManageableDeviceNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.0">
      <description>
        Each entry in this table corresponds to a distinct LAN Device that
        supports Device-Gateway Association according to {{bibref|TR-069|Annex
        F}} as indicated by the presence of the DHCP option specified in that
        Annex.
      </description>
      <uniqueKey functional="true">
        <parameter ref="ManufacturerOUI"/>
        <parameter ref="SerialNumber"/>
        <parameter ref="ProductClass"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" status="deleted">
        <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.

          {{deprecated|2.11|because {{object}} is a transient object}}

          {{obsoleted|2.14}}

          {{deleted|2.15}}
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ManufacturerOUI" access="readOnly"
          activeNotify="canDeny">
        <description>
          Organizationally unique identifier of the Device manufacturer as
          provided to the Gateway by the Device. Represented as a six
          hexadecimal-digit value using all upper-case letters and including
          any leading zeros. {{pattern}}

          The value MUST be a valid OUI as defined in {{bibref|OUI}}.
        </description>
        <syntax>
          <string>
            <size minLength="6" maxLength="6"/>
            <pattern value="[0-9A-F]{6}"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SerialNumber" access="readOnly" activeNotify="canDeny">
        <description>
          Serial number of the Device as provided to the Gateway by the Device.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ProductClass" access="readOnly" activeNotify="canDeny">
        <description>
          Identifier of the class of product for which the Device's serial
          number applies as provided to the Gateway by the Device.

          If the Device does not provide a Product Class, then this parameter
          MUST be {{empty}}.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Host" access="readOnly">
        <description>
          {{list}} {{reference}} References all the {{object|##.Hosts.Host}}
          table entries, whether active or inactive, that correspond to this
          physical LAN device. There can be multiple such entries if the device
          has more than one network interface.

          For example: ''Device.Hosts.Host.1,Device.Hosts.Host.5''
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string>
            <pathRef refType="strong" targetParent="##.Hosts.Host."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.ManagementServer.AutonomousTransferCompletePolicy."
        access="readOnly" minEntries="1" maxEntries="1" version="2.0">
      <description>
        This object allows configuration of CPE policy for notification of
        AUTONOMOUS TRANSFER COMPLETE events, defined in {{bibref|TR-069}}.

        The CPE policy determines the conditions under which the CPE notifies
        the ACS of the completion of file transfers that were not specifically
        requested by the ACS.
      </description>

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

      <parameter name="TransferTypeFilter" access="readWrite">
        <description>
          Indicates the transfer types that MUST be included when the CPE
          notifies the ACS of AUTONOMOUS TRANSFER COMPLETE events. Transfer
          types not indicated by this filter MUST NOT be included when the CPE
          notifies the ACS. {{enum}}

          Note that this includes any backup or restore operations that were
          not specifically requested by the ACS. A backup is regarded as an
          Upload and a restore is regarded as a Download.
        </description>
        <syntax>
          <string>
            <enumeration value="Upload"/>
            <enumeration value="Download"/>
            <enumeration value="Both">
              <description>Upload and Download</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="ResultTypeFilter" access="readWrite">
        <description>
          Indicates the transfer results that MUST be included when the CPE
          notifies the ACS of AUTONOMOUS TRANSFER COMPLETE events. Transfer
          results omitted from this list MUST NOT be included when the CPE
          notifies the ACS.

          Note that this includes any backup or restore operations that were
          not specifically requested by the ACS. A backup is regarded as an
          Upload and a restore is regarded as a Download.
        </description>
        <syntax>
          <string>
            <enumeration value="Success">
              <description>
                The autonomous file transfer completed successfully; i.e., the
                FaultCode was zero
              </description>
            </enumeration>
            <enumeration value="Failure">
              <description>
                The autonomous file transfer did not complete successfully;
                i.e., the FaultCode was non-zero
              </description>
            </enumeration>
            <enumeration value="Both">
              <description>Success and Failure</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="FileTypeFilter" access="readWrite">
        <description>
          {{list}} Indicates the file types that MUST be included when the CPE
          notifies the ACS of AUTONOMOUS TRANSFER COMPLETE events. File types
          omitted from this list MUST NOT be included when the CPE notifies the
          ACS.

          {{pattern}}

          Additionally, the following format is defined to allow the unique
          definition of vendor-specific file types:

          * ''"X &lt;OUI&gt; &lt;Vendor-specific identifier&gt;"''

          &lt;OUI&gt; is replaced by a 6 hexadecimal-digit OUI
          (organizationally unique identifier) as defined in {{bibref|OUI}},
          with all upper-case letters and any leading zeros included. The OUI
          used for a given vendor-specific file type MUST be one that is
          assigned to the organization that defined this file type (which is
          not necessarily the same as the vendor of the CPE or ACS).

          Note that {{empty}} indicates that all file types are excluded from
          this filter, effectively disabling CPE notification of AUTONOMOUS
          TRANSFER COMPLETE events to the ACS.
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string>
            <pattern value="1 Firmware Upgrade Image">
              <description>Download Only</description>
            </pattern>
            <pattern value="2 Web Content">
              <description>Download Only</description>
            </pattern>
            <pattern value="3 Vendor Configuration File">
              <description>Download or Upload</description>
            </pattern>
            <pattern value="4 Vendor Log File">
              <description>Upload Only</description>
            </pattern>
            <pattern value="X [0-9A-F]{6} .*">
              <description>
                For Vendor-Specific File Types, could be for either Download or
                Upload
              </description>
            </pattern>
          </string>
        </syntax>
      </parameter>
    </object>

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

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

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

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

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

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

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

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

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

      <parameter name="URL" access="readWrite">
        <description>
          The {{datatype}} encoding the group address, source and port on which
          to listen, and other protocol information, e.g. expected announcement
          format.

          Depending on the application, the messages identified by this URL MAY
          directly contain the data to be downloaded, or alternatively MAY
          contain information informing the CPE how to obtain the data to be
          downloaded via a separate mechanism, which itself could involve a
          unicast or a multicast download protocol.

          Refer to {{bibref|DVB-TS.102.824}} for an example of a URL format
          that identifies a SAP {{bibref|RFC2974}} stream that indicates how to
          use either FLUTE {{bibref|RFC3926}} or DSM-CC
          {{bibref|ISO-13818-6:1998}} to perform the download.
        </description>
        <syntax>
          <dataType ref="URL"/>
        </syntax>
      </parameter>
    </object>

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

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

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

      <parameter name="URL" access="readWrite">
        <description>
          The {{datatype}} of the query response server.

          Depending on the application, the protocol described by this URL MAY
          be a SOAP interface, or MAY be any other RPC mechanism.

          Refer to {{bibref|DVB-TS.102.824}} for an example of a URL format
          that identifies a SOAP interface running over HTTP or HTTPS.
        </description>
        <syntax>
          <dataType ref="URL"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.ManagementServer.DUStateChangeComplPolicy."
        access="readOnly" minEntries="1" maxEntries="1" version="2.1">
      <description>
        This object allows configuration of CPE policy for notification of "12
        AUTONOMOUS DU STATE CHANGE COMPLETE" events defined in
        {{bibref|TR-069}}.

        The CPE policy determines the conditions under which the CPE notifies
        the ACS of the completion of Deployment Unit state changes that were
        not specifically requested via CWMP.
      </description>

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

      <parameter name="OperationTypeFilter" access="readWrite">
        <description>
          Indicates the Deployment Unit operations that MUST be included when
          the CPE notifies the ACS of "12 AUTONOMOUS DU STATE CHANGE COMPLETE"
          events.

          Operation types not indicated by this list MUST NOT be included when
          the CPE notifies the ACS. {{empty}} is essentially the same as
          setting {{param|Enable}} to {{false}}.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="Install"/>
            <enumeration value="Update"/>
            <enumeration value="Uninstall"/>
          </string>
        </syntax>
      </parameter>

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

      <parameter name="FaultCodeFilter" access="readWrite">
        <description>
          Indicates the Deployment Unit state change fault codes that MUST be
          included when the CPE notifies the ACS of "12 AUTONOMOUS DU STATE
          CHANGE COMPLETE" events. State change fault codes omitted from this
          filter MUST NOT be included when the CPE notifies the ACS.

          This filter has no effect on the notification of a successful
          autonomous state change. This filter only applies when
          {{param|ResultTypeFilter}} is set to either
          {{enum|Failure|ResultTypeFilter}} or {{enum|Both|ResultTypeFilter}}.
          {{empty}} means that failed autonomous state changes will not be sent
          to the ACS.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="9001"/>
            <enumeration value="9003"/>
            <enumeration value="9012"/>
            <enumeration value="9013"/>
            <enumeration value="9015"/>
            <enumeration value="9016"/>
            <enumeration value="9017"/>
            <enumeration value="9018"/>
            <enumeration value="9022"/>
            <enumeration value="9023"/>
            <enumeration value="9024"/>
            <enumeration value="9025"/>
            <enumeration value="9026"/>
            <enumeration value="9027"/>
            <enumeration value="9028"/>
            <enumeration value="9029"/>
            <enumeration value="9030"/>
            <enumeration value="9031"/>
            <enumeration value="9032"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.ManagementServer.EmbeddedDevice.{i}."
        access="readOnly" numEntriesParameter="EmbeddedDeviceNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.3">
      <description>
        Each entry in this table represents a distinct Proxied Device that
        utilizes the Embedded Object Mechanism {{bibref|TR-069|Annex J.3}} for
        proxying devices.
      </description>
      <uniqueKey functional="true">
        <parameter ref="ControllerID"/>
        <parameter ref="ProxiedDeviceID"/>
      </uniqueKey>

      <parameter name="ControllerID" access="readOnly">
        <description>
          Identifier of the controller that is responsible for a sub-network of
          Proxied Devices within the LAN.

          {{empty}} indicates that this Proxied Device either:

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

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

      <parameter name="ProxiedDeviceID" access="readOnly">
        <description>
          Idenitfier of the Proxied Device.

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

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

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

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

      <parameter name="ProxyProtocol" access="readOnly">
        <description>
          The protocol being used to communicate between the CPE Proxier and
          this Proxied Device. {{enum}}

          Vendors can extend the enumerated values with vendor specific
          extensions, in which case the rules outlined in {{bibref|TR-106|3.3}}
          MUST be adhered to.
        </description>
        <syntax>
          <string>
            <enumeration value="Z-Wave">
              <description>see {{bibref|Z-Wave}}</description>
            </enumeration>
            <enumeration value="ZigBee">
              <description>see {{bibref|ZigBee}}</description>
            </enumeration>
            <enumeration value="UPnP-DM">
              <description>see {{bibref|UPnP-DM:1}}</description>
            </enumeration>
            <enumeration value="ETSI-M2M">
              <description>see {{bibref|ETSIM2MFA}}</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="ProxyProtocolReference" access="readOnly" version="2.6">
        <description>
          {{reference|a protocol object that uses the {{param|ProxyProtocol}}}}
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="DiscoveryProtocol" access="readOnly" version="2.6">
        <description>
          {{list|that represents the discovery protocol(s) for this proxied
          device}}

          {{enum}}

          Vendors can extend the enumerated values with vendor specific
          extensions, in which case the rules outlined in
          {{bibref|TR-106|Section 3.3}} MUST be adhered to.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="Z-Wave">
              <description>see {{bibref|Z-Wave}}</description>
            </enumeration>
            <enumeration value="ZigBee">
              <description>see {{bibref|ZigBee}}</description>
            </enumeration>
            <enumeration value="UPnP">
              <description>see {{bibref|UPnP-DAv1}}</description>
            </enumeration>
            <enumeration value="ETSI-M2M">
              <description>see {{bibref|ETSIM2MFA}}</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="DiscoveryProtocolReference" access="readOnly"
          version="2.6">
        <description>
          {{list}} {{reference|an object discovered using one or more protocols
          listed in {{param|DiscoveryProtocol}}}}

          For objects discovered by the UPnP discovery protocol, the {{param}}
          would contain items that are references to instances of the
          following:

          * {{object|##.UPnP.Discovery.RootDevice}}

          * {{object|##.UPnP.Discovery.Device}}

          * {{object|##.UPnP.Discovery.Service}}

          For objects discovered by the ETSI-M2M discovery protocol, the
          {{param}} would contain items that are references to instances of
          {{object|##.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance}}.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetType="row"/>
          </string>
        </syntax>
      </parameter>

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

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

      <parameter name="LastSyncTime" access="readOnly">
        <description>
          The last time that the CPE Proxier synchronized the state of the
          Proxied Device. This parameter MUST be updated when a proxy command
          is executed successfully on the Proxied Device.

          The Unknown Time value, as defined in {{bibref|TR-106}}, indicates
          that the Proxied Device's state has not been synchronized since the
          CPE Proxier was last rebooted.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>
    </object>

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

      <parameter name="ManufacturerOUI" access="readOnly">
        <description>
          Organizationally unique identifier of the associated Proxied Device.
          Represented as a six hexadecimal-digit value using all upper-case
          letters and including any leading zeros. {{pattern}}

          The value MUST be a valid OUI as defined in {{bibref|OUI}}.
        </description>
        <syntax>
          <string>
            <size minLength="6" maxLength="6"/>
            <pattern value="[0-9A-F]{6}"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ProductClass" access="readOnly">
        <description>
          Identifier of the class of product of the associated Proxied Device
          for which the serial number applies.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

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

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

      <parameter name="ProxyProtocol" access="readOnly">
        <description>
          The protocol being used to communicate between the CPE Proxier and
          this Proxied Device. {{enum}}

          Vendors can extend the enumerated values with vendor specific
          extensions, in which case the rules outlined in {{bibref|TR-106|3.3}}
          MUST be adhered to.
        </description>
        <syntax>
          <string>
            <enumeration value="Z-Wave">
              <description>see {{bibref|Z-Wave}}</description>
            </enumeration>
            <enumeration value="ZigBee">
              <description>see {{bibref|ZigBee}}</description>
            </enumeration>
            <enumeration value="UPnP-DM">
              <description>see {{bibref|UPnP-DM:1}}</description>
            </enumeration>
            <enumeration value="ETSI-M2M">
              <description>see {{bibref|ETSIM2MFA}}</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="ProxyProtocolReference" access="readOnly" version="2.6">
        <description>
          {{reference|a protocol object that uses the {{param|ProxyProtocol}}}}
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="DiscoveryProtocol" access="readOnly" version="2.6">
        <description>
          {{list|that represents the discovery protocol(s) for this proxied
          device}}

          {{enum}}

          Vendors can extend the enumerated values with vendor specific
          extensions, in which case the rules outlined in
          {{bibref|TR-106|Section 3.3}} MUST be adhered to.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="Z-Wave">
              <description>see {{bibref|Z-Wave}}</description>
            </enumeration>
            <enumeration value="ZigBee">
              <description>see {{bibref|ZigBee}}</description>
            </enumeration>
            <enumeration value="UPnP">
              <description>see {{bibref|UPnP-DAv1}}</description>
            </enumeration>
            <enumeration value="ETSI-M2M">
              <description>see {{bibref|ETSIM2MFA}}</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="DiscoveryProtocolReference" access="readOnly"
          version="2.6">
        <description>
          {{list}} {{reference|an object discovered using one or more protocols
          listed in {{param|DiscoveryProtocol}}}}

          For objects discovered by the UPnP discovery protocol, the {{param}}
          would contain items that are references to instances of the
          following:

          * {{object|##.UPnP.Discovery.RootDevice}}

          * {{object|##.UPnP.Discovery.Device}}

          * {{object|##.UPnP.Discovery.Service}}

          For objects discovered by the ETSI-M2M discovery protocol, the
          {{param}} would contain items that are references to instances of
          {{object|##.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance}}.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetType="row"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.ManagementServer.StandbyPolicy." access="readOnly"
        minEntries="1" maxEntries="1" version="2.7">
      <description>
        Parameters related to CPE behavior when waking up from standby. If this
        object is supported then the CPE MUST support the requirements of
        {{bibref|TR-069|Annex L}}.

        NOTE: "CR", as used in the names and descriptions of the parameters
        defined in this object, refers to the Connection Request concept
        defined in TR-069.
      </description>

      <parameter name="CRUnawarenessMaxDuration" access="readWrite">
        <description>
          When waking up from a non CR-Aware Standby that lasted more than this
          parameter's value (in {{units}}), the CPE MUST issue a WAKEUP Event.

          If the value is -1, the CPE MUST NOT ever issue WAKEUP Events for
          having been non CR-aware.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
            <units value="seconds"/>
          </int>
          <default type="factory" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="MaxMissedPeriodic" access="readWrite">
        <description>
          When waking up from a non fully Timer-Aware Standby that made it miss
          more than this parameter's value Periodic Contacts, the CPE MUST
          issue a WAKEUP Event.

          If the value is -1, the CPE MUST NOT ever issue WAKEUP Events for
          exceeding that limit.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
          </int>
          <default type="factory" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="NotifyMissedScheduled" access="readWrite">
        <description>
          When waking up from a non fully Timer-Aware Standby that made it miss
          at least one Scheduled Contact, the CPE MUST issue a WAKEUP Event if
          this parameter is {{true}}.
        </description>
        <syntax>
          <boolean/>
          <default type="factory" value="false"/>
        </syntax>
      </parameter>

      <parameter name="NetworkAwarenessCapable" access="readOnly">
        <description>
          Indicates that the CPE is capable of CR-Aware Standby.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="SelfTimerCapable" access="readOnly">
        <description>
          Indicates that the CPE is capable of Timer-Aware Standby.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="CRAwarenessRequested" access="readWrite">
        <description>
          If {{param|NetworkAwarenessCapable}} and this parameter are both
          {{true}}, the CPE MUST NOT go into a non CR-Aware Standby state.
        </description>
        <syntax>
          <boolean/>
          <default type="factory" value="false"/>
        </syntax>
      </parameter>

      <parameter name="PeriodicAwarenessRequested" access="readWrite">
        <description>
          If {{param|SelfTimerCapable}} and this parameter are both {{true}},
          the CPE MUST NOT go into a standby state that prevents it from
          honoring Periodic Contacts.
        </description>
        <syntax>
          <boolean/>
          <default type="factory" value="false"/>
        </syntax>
      </parameter>

      <parameter name="ScheduledAwarenessRequested" access="readWrite">
        <description>
          If this parameter is true, the CPE MUST NOT go into a standby state
          that prevents it from honoring Scheduled Contacts. This means that,
          whenever the ACS has requested a Scheduled Contact:

          *if {{param|SelfTimerCapable}} is {{true}} and the CPE chooses to go
           into Standby before the Scheduled Contact has been honored, it MUST
           use a Timer-Aware Standby;

          *if {{param|SelfTimerCapable}} is {{false}}, the CPE MUST NOT go into
           Standby before the Scheduled Contact has been honored.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.ManagementServer.InformParameter.{i}."
        access="readWrite" numEntriesParameter="InformParameterNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded"
        version="2.8">
      <description>
        This table provides the ACS with the ability to control the Parameters
        that are delivered by the Inform RPC.

        Any Parameter (identified by {{param|ParameterName}}) contained in this
        table MUST be included within the ParameterList argument of the Inform
        RPC whenever any Event within the {{param|EventList}} is being
        delivered.

        This table does not include Forced Inform Parameters, and Forced Inform
        Parameters are not allowed to be inserted into this table. Any attempt
        by an ACS to configure this table to contain a Forced Inform Parameter
        MUST result in the failure of the SetParameterValues RPC with error
        code 9007.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="ParameterName"/>
      </uniqueKey>

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

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

      <parameter name="ParameterName" access="readWrite">
        <description>
          A pattern that describes the Parameter(s) to be included in the
          Inform’s ParameterList argument. Specifically, patterns with
          wildcards (an "*" character) in place of Instance Identifiers are
          allowed; any attempt to set the value otherwise MUST be rejected by
          the CPE.

          If the pattern does not match any existing Parameters at the time
          that the CPE is creating the Inform RPC, then this
          {{object|#.InformParameter}} instance is not included in the Inform’s
          ParameterList argument.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="EventList" access="readWrite">
        <description>
          Each entry in this list represents an Event for which this Parameter
          MUST be included within the ParameterList argument of the Inform RPC.

          All Inform Events (see {{bibref|TR-069|Section 3.7.1.5}}), except for
          "4 VALUE CHANGE", are allowed as entries in this list. "4 VALUE
          CHANGE" is not allowed as that would violate requirements contained
          in {{bibref|TR-069|Section A.3.3.1}}.

          {{empty}} means all events except "4 VALUE CHANGE".
        </description>
        <syntax>
          <list/>
          <string/>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.ManagementServer.HeartbeatPolicy." access="readOnly"
        minEntries="1" maxEntries="1" version="2.12">
      <description>
        Parameters related to CPE behavior in order to issue a Heartbeat event
        to the ACS using the Inform method call.

        If this object is supported then the CPE MUST support the requirements
        of {{bibref|TR-069|Annex O}}.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          When {{true}}, Heartbeat events are enabled to be sent to the ACS
          based on the values of the {{param|ReportingInterval}} and
          {{param|InitiationTime}} parameters.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="ReportingInterval" 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|Enable}} is {{true}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="30"/>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="InitiationTime" access="readWrite">
        <description>
          An absolute time reference in UTC to determine when the CPE will
          initiate the Heartbeat event Inform method calls. Each Inform call
          MUST occur at this reference time plus or minus an integer multiple
          of the {{param|ReportingInterval}}.

          {{param}} is used only to set the ''phase'' of the Heartbeat event
          Informs. The actual value of {{param}} can be arbitrarily far into
          the past or future.

          For example, if {{param|ReportingInterval}} is 60 (one minute) and if
          {{param}} is set to UTC midnight on some day (in the past, present,
          or future) then Heartbeat Informs will occur every minute at the next
          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-106|section 3.2}}
          indicates that no particular time reference is specified. The CPE
          MUST locally choose a random time reference.

          If absolute time is not available to the CPE, its Heartbeat Inform
          behavior MUST be the same as if the {{param}} parameter was set to
          the Unknown Time value.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Time." access="readOnly" minEntries="1"
        maxEntries="1" version="2.0">
      <description>
        This object contains global parameters relating to the NTP time clients
        and or servers that are active in the device. This object can be used
        to model SNTP and NTP clients and servers.

        Both NTP and SNTP have identical packet formats and use the same
        mathematical operations to calculate client time, clock offset, and
        roundtrip delay. From the perspective of an NTP or SNTP server, there
        is no difference between NTP and SNTP clients, and from the perspective
        of an NTP or SNTP client, there is no difference between NTP and SNTP
        servers. SNTP servers are stateless like NTP servers in non-symmetric
        modes and can handle numerous clients, but SNTP clients usually operate
        with only one server at a time, unlike most NTP clients.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables all the time clients and servers.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          Reflects the global time synchronisation status of the CPE. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled">
              <description>
                Indicates that the CPE's time client services are disabled.
              </description>
            </enumeration>
            <enumeration value="Unsynchronized">
              <description>
                Indicates that the CPE's absolute time has not yet been set by
                any of the configured time clients.
              </description>
            </enumeration>
            <enumeration value="Synchronized">
              <description>
                Indicates that the CPE has acquired accurate absolute time; its
                current time is accurate. One or more time client was able to
                configure the time of the CPE.
              </description>
            </enumeration>
            <enumeration value="Error_FailedToSynchronize" status="deleted">
              <description>
                {{deprecated|2.16|due to the introduction of
                {{object|Client}}}}

                {{obsoleted|2.18}}

                {{deleted|2.19}}
              </description>
            </enumeration>
            <enumeration value="Error" optional="true">
              <description>
                MAY be used by the CPE to indicate a locally defined error
                condition. None of the configured Time clients were able to
                synchronize the time.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="NTPServer1" access="readWrite" status="deleted">
        <description>
          First NTP timeserver. Either a host name or IP address.

          {{deprecated|2.16|due to the introduction of {{object|Client}}}}

          {{obsoleted|2.18}}

          {{deleted|2.19}}
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="NTPServer2" access="readWrite" status="deleted">
        <description>
          Second NTP timeserver. Either a host name or IP address.

          {{deprecated|2.16|due to the introduction of {{object|Client}}}}

          {{obsoleted|2.18}}

          {{deleted|2.19}}
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="NTPServer3" access="readWrite" status="deleted">
        <description>
          Third NTP timeserver. Either a host name or IP address.

          {{deprecated|2.16|due to the introduction of {{object|Client}}}}

          {{obsoleted|2.18}}

          {{deleted|2.19}}
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="NTPServer4" access="readWrite" status="deleted">
        <description>
          Fourth NTP timeserver. Either a host name or IP address.

          {{deprecated|2.16|due to the introduction of {{object|Client}}}}

          {{obsoleted|2.18}}

          {{deleted|2.19}}
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="NTPServer5" access="readWrite" status="deleted">
        <description>
          Fifth NTP timeserver. Either a host name or IP address.

          {{deprecated|2.16|due to the introduction of {{object|Client}}}}

          {{obsoleted|2.18}}

          {{deleted|2.19}}
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

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

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

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

      <parameter name="ClientNumberOfEntries" access="readOnly" version="2.16">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

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

    <object name="Device.Time.Client.{i}." access="readWrite"
        enableParameter="Enable" numEntriesParameter="ClientNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.16">
      <description>
        This object contains parameters relating to an time client instance.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="Status" access="readOnly">
        <description>
          Status of Time support for this client. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled">
              <description>
                Indicates that the time client service is being disabled
              </description>
            </enumeration>
            <enumeration value="Unsynchronized">
              <description>
                Indicates that the time client absolute time has not yet been
                set.
              </description>
            </enumeration>
            <enumeration value="Synchronized">
              <description>
                Indicates that the time client has acquired accurate absolute
                time; its current time is accurate.
              </description>
            </enumeration>
            <enumeration value="Error_FailedToSynchronize" version="2.19">
              <description>
                The NTP client attempted to contact the remote NTP server but
                failed to acquire accurate absolute time. The current time
                remains inaccurate.
              </description>
            </enumeration>
            <enumeration value="Error" optional="true">
              <description>
                MAY be used by the time client to indicate a locally defined
                error condition.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

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

      <parameter name="Mode" access="readWrite">
        <description>
          Specifies in which mode the NTP client must be run. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="Unicast">
              <description>
                Support for the NTP client in unicast mode.
              </description>
            </enumeration>
            <enumeration value="Broadcast">
              <description>
                Support for the NTP client in broadcast mode.
              </description>
            </enumeration>
            <enumeration value="Multicast">
              <description>
                Support for the NTP client in multicast mode.
              </description>
            </enumeration>
            <enumeration value="Manycast">
              <description>
                Support for the NTP client in manycast mode.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="Port" access="readWrite">
        <description>
          Specify the port used to send NTP packets. {{bibref|RFC5905|Section
          7.2}}
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="65535"/>
          </unsignedInt>
          <default type="object" value="123"/>
        </syntax>
      </parameter>

      <parameter name="IPVersion" access="readWrite" version="2.19">
        <description>
          Specifies the IP protocol version, following the definitions in
          {{bibref|IANA-ipversionnumbers}}. Valid values are: {{range}}.
        </description>
        <syntax>
          <int>
            <range minInclusive="4" maxInclusive="4">
              <description>
                IPv4
              </description>
            </range>
            <range minInclusive="6" maxInclusive="6">
              <description>
                IPv6
              </description>
            </range>
            <range minInclusive="-1" maxInclusive="-1">
              <description>
                No specific IP version is required
              </description>
            </range>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="ServerInUse" access="readOnly" version="2.19">
        <description>
          Specifies the server currently used for time synchronization. The
          value reported is the exact server entry as configured in the
          {{param|Servers}} parameter.

          If the server is specified as a Fully Qualified Domain Name (FQDN) in
          the {{param|Servers}} parameter, the configured FQDN will be reported
          here, not the resolved IP address or CNAME.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="Version" access="readWrite">
        <description>
          Specifies the supported NTP version. Possible versions are 1-4.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="4"/>
          </unsignedInt>
          <default type="object" value="4"/>
        </syntax>
      </parameter>

      <parameter name="Servers" access="readWrite">
        <description>
          Points to a CSV list of NTP servers or pools. A NTP server can either
          be specified as an IP address or a host name. It is expected that the
          NTP client resolves multiple addresses which can change over time
          when {{param|ResolveAddresses}} is enabled.
        </description>
        <syntax>
          <list/>
          <string/>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>

      <parameter name="ResolveAddresses" access="readWrite">
        <description>
          When this option is enabled the NTP client must resolve the multiple
          addresses associated with the host name(s) that are specified in the
          {{param|Servers}} field.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="ResolveMaxAddresses" access="readWrite">
        <description>
          When {{param|ResolveAddresses}} is enabled, This parameter specifies
          the maximum number of IP addresses that the NTP client can resolve. 0
          means that all addresses must be resolved.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="6"/>
        </syntax>
      </parameter>

      <parameter name="Peer" access="readWrite">
        <description>
          Use symmetric active association mode. This device may provide
          synchronization to the configured NTP server.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MinPoll" access="readWrite">
        <description>
          This is the minimum polling interval, in {{units}} to the power of
          two, allowed by any peer of the Internet system, currently set to 6
          (64 seconds). {{bibref|RFC5905|Section 7.2}}
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="6"/>
        </syntax>
      </parameter>

      <parameter name="MaxPoll" access="readWrite">
        <description>
          This is the maximum polling interval, in {{units}} to the power of
          two, allowed by any peer of the Internet system, currently set to 10
          (1024 seconds) {{bibref|RFC5905|Section 7.2}}
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="10"/>
        </syntax>
      </parameter>

      <parameter name="IBurst" access="readWrite">
        <description>
          If the {{param}} parameter is enabled, and this is the first packet
          sent when the server has been unreachable, the client sends a burst.
          This is useful to quickly reduce the synchronization distance below
          the distance threshold and synchronize the clock. {{bibref|RFC5905}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Burst" access="readWrite">
        <description>
          If the {{param}} parameter is enabled and the server is reachable and
          a valid source of synchronization is available, the client sends a
          burst of BCOUNT (8) packets at each poll interval. The interval
          between packets in the burst is two seconds. This is useful to
          accurately measure jitter with long poll intervals.
          {{bibref|RFC5905}}.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="8"/>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite">
        <description>
          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="BindType" access="readWrite">
        <description>
          Specifies how the client sockets are bound. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="Address">
              <description>
                The client sockets are bound to a local IP address.
              </description>
            </enumeration>
            <enumeration value="Device">
              <description>
                The client sockets are bound to a network device. This can be
                useful when the local address is dynamic.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Time.Client.{i}.Authentication." access="readOnly"
        minEntries="1" maxEntries="1" version="2.16">
      <description>
        This object contains parameters relating to enabling security for the
        time client.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables authentication of the time client.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Certificate" access="readWrite">
        <description>
          Points to the certificate that must be used by the NTS-KE client.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent=".Security.Certificate."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="NTSPort" access="readWrite">
        <description>
          On this port the NTS Key Establishment protocol is being provided.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="65535"/>
          </unsignedInt>
          <default type="object" value="4460"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Time.Client.{i}.Stats." access="readOnly"
        minEntries="1" maxEntries="1" version="2.16">
      <description>
        This object specifies the statistic parameters for the time client.
        {{bibref|RFC9249|Chapter 8 NTP Yang Module}}
      </description>

      <parameter name="PacketsSent" access="readOnly">
        <description>
          Specifies the number of packets that have been successfully sent from
          the NTP client to the NTP server.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="PacketsSentFailed" access="readOnly">
        <description>
          Specifies the number of packets that were not successfully sent to
          the NTP server.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" access="readOnly">
        <description>
          Specifies the number of packets that have been successfully received
          by the NTP client from the NTP server.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="PacketsDropped" access="readOnly">
        <description>
          Specifies the number of packets that were received by the NTP client
          but were not successfully processed or handled due to errors or other
          issues.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Time.Server.{i}." access="readWrite"
        enableParameter="Enable" numEntriesParameter="ServerNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.16">
      <description>
        This object contains parameters relating to an time server instance.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the time server.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          Status of Time server instance. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="Up">
              <description>
                Indicates that the NTP server instance is enabled and working.
              </description>
            </enumeration>
            <enumeration value="Down">
              <description>
                Indicates that the NTP server instance is disabled and thus not
                working.
              </description>
            </enumeration>
            <enumeration value="Error" optional="true">
              <description>
                MAY be used by the NTP server instance to indicate a locally
                defined error condition.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

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

      <parameter name="Mode" access="readWrite">
        <description>
          Specifies in which mode the NTP server must be ran. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="Unicast">
              <description>
                Support for the NTP server in unicast mode.
              </description>
            </enumeration>
            <enumeration value="Broadcast">
              <description>
                Support for the NTP server in broadcast mode.
              </description>
            </enumeration>
            <enumeration value="Multicast">
              <description>
                Support for the NTP server in multicast mode.
              </description>
            </enumeration>
            <enumeration value="Manycast">
              <description>
                Support for the NTP server in manycast mode.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="Version" access="readWrite">
        <description>
          Specifies the supported NTP version. Possible versions are 1-4.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="4"/>
          </unsignedInt>
          <default type="object" value="4"/>
        </syntax>
      </parameter>

      <parameter name="Port" access="readWrite">
        <description>
          Specify the port used to receive NTP packets.
          {{bibref|RFC5905|Section 7.2}}
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="65535"/>
          </unsignedInt>
          <default type="object" value="123"/>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite">
        <description>
          The IP Interface associated with the ''Server'' entry.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent=".IP.Interface."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="BindType" access="readWrite">
        <description>
          Specifies how the client sockets must be bounded. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="Address">
              <description>
                The server sockets are bound to a local IP address.
              </description>
            </enumeration>
            <enumeration value="Device">
              <description>
                The server sockets are bound to a network device. This can be
                useful when the local address is dynamic.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="MinPoll" access="readWrite">
        <description>
          This is the minimum polling interval, in {{units}} to the power of
          two, allowed by any peer of the Internet system, currently set to 6
          (64 seconds). {{bibref|RFC5905|Section 7.2}}
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="6"/>
        </syntax>
      </parameter>

      <parameter name="MaxPoll" access="readWrite">
        <description>
          This is the maximum polling interval, in {{units}} to the power of
          two, allowed by any peer of the Internet system, currently set to 10
          (1024 seconds) {{bibref|RFC5905|Section 7.2}}
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="10"/>
        </syntax>
      </parameter>

      <parameter name="TTL" access="readWrite">
        <description>
          Specifies the time to live (TTL) for a broadcast/multicast packet.
          {{bibref|RFC5905|Section 3.1}}
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="255"/>
          </unsignedInt>
          <default type="object" value="255"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Time.Server.{i}.Authentication." access="readOnly"
        minEntries="1" maxEntries="1" version="2.16">
      <description>
        This object contains parameters relating to enabling security for the
        NTP Server.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables authentication of the NTP server.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Certificate" access="readWrite">
        <description>
          Points to the certificate that must be used by the NTS-KE client.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent=".Security.Certificate."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="NTSNTPServer" access="readWrite">
        <description>
          Points to a CSV list of NTP servers. A NTP server can either be
          specified as an IP address or a host name. When used the NTS-KE
          server will tell the remote NTS-KE client the NTP hostname or address
          of the NTP server(s) that should be used. This allows to separate the
          NTP server and NTS-KE server implementation.
        </description>
        <syntax>
          <list/>
          <string/>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Time.Server.{i}.Stats." access="readOnly"
        minEntries="1" maxEntries="1" version="2.16">
      <description>
        This object specifies the statistic parameters for the NTP server.
        {{bibref|RFC9249|Chapter 8 NTP Yang Module}}
      </description>

      <parameter name="PacketsSent" access="readOnly">
        <description>
          Specifies the number of packets that have been successfully sent from
          the NTP server to the NTP client.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="PacketsSentFailed" access="readOnly">
        <description>
          Specifies the number of packets that were not successfully sent to
          the NTP client.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" access="readOnly">
        <description>
          Specifies the number of packets that have been successfully received
          by the NTP server from a NTP client.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="PacketsDropped" access="readOnly">
        <description>
          Specifies the number of packets that were received by the NTP server
          but were not successfully processed or handled due to errors or other
          issues.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>
    </object>

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

      <parameter name="Enable" access="readWrite" version="2.11">
        <description>
          Enables and disables the CPE's user interface.
        </description>
        <syntax>
          <boolean/>
          <default type="factory" value="true"/>
        </syntax>
      </parameter>

      <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"
          dmr:previousParameter="PasswordUserSelectable">
        <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 command="true">
          <boolean/>
        </syntax>
      </parameter>

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

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

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

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

      <parameter name="ISPHomePage" access="readWrite">
        <description>
          The {{datatype}} of the ISP's home page.
        </description>
        <syntax>
          <dataType ref="URL"/>
        </syntax>
      </parameter>

      <parameter name="ISPHelpPage" access="readWrite">
        <description>
          The {{datatype}} of the ISP's on-line support page.
        </description>
        <syntax>
          <dataType ref="URL"/>
        </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 {{datatype}} of the ISP's mail server.
        </description>
        <syntax>
          <dataType ref="URL"/>
        </syntax>
      </parameter>

      <parameter name="ISPNewsServer" access="readWrite">
        <description>
          The {{datatype}} of the ISP's news server.
        </description>
        <syntax>
          <dataType ref="URL"/>
        </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>

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

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

    <object name="Device.UserInterface.HTTPAccess.{i}." access="readWrite"
        enableParameter="Enable"
        numEntriesParameter="HTTPAccessNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.16">
      <description>
        HTTPAccess is used for modeling the different web interfaces that may
        be either locally or remotely available in the device. For example with
        Software Modules it is possible to install multiple services that embed
        a web interface like a ''Video service'' or ''Photo service''.

        An instance of the {{object}} can model a web interface that is
        embedded in the device firmware or installed through a Software Modules
        management system.

        Access to the web interface MAY require user authentication. To have
        access authentication the device MUST support a {{object|.Users.User.}}
        object with at least one instance and an assigned relevant role in
        {{param|.Users.User.{i}.RoleParticipation}}.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables/disables web interface.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

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

      <parameter name="Order" access="readWrite">
        <description>
          {{datatype|expand}}

          For each incoming connection, the highest ordered entry that matches
          the Host: HTTP header and path prefix is applied. All lower {{param}}
          entries are ignored.
        </description>
        <syntax>
          <dataType ref="Order"/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          Status of web interface.
        </description>
        <syntax>
          <string>
            <enumeration value="Up">
              <description>
                Indicates that the web interface is enabled and working.
              </description>
            </enumeration>
            <enumeration value="Down">
              <description>
                Indicates that the web interface is disabled and thus not
                working.
              </description>
            </enumeration>
            <enumeration value="Error" optional="true">
              <description>
                MAY be used by the web interface to indicate a locally defined
                error condition.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="AccessType" access="readWrite">
        <description>
          This parameter describes the possible access types.
        </description>
        <syntax>
          <string>
            <enumeration value="RemoteAccess">
              <description>
                Indicates that the web interface should be used for remote
                access. Remote access is defined as any entity not on a local
                subnet attempting to connect to the device.
              </description>
            </enumeration>
            <enumeration value="LocalAccess">
              <description>
                Indicates that the web interface should be used for local
                access.
              </description>
            </enumeration>
          </string>
          <default type="object" value="LocalAccess"/>
        </syntax>
      </parameter>

      <parameter name="AllowedRoles" access="readWrite">
        <description>
          Only allow users, defined in {{object|.Users.User.}}, to access the
          web instance represented by this {{object}} instance that have the
          following roles assigned that are defined in {{object|.Users.Role.}}.
        </description>
        <syntax>
          <list/>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent=".Users.Role."
                targetType="row"/>
          </string>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>

      <parameter name="Certificate" access="readWrite" version="2.16">
        <description>
          Specifies the server certificate to be presented by the server during
          the TLS handshake. This certificate is used to authenticate the
          server to remote clients, ensuring that the clients are connecting to
          a legitimate server. The server certificate must be issued by a
          trusted Certificate Authority (CA) and should match the server's
          private key. This parameter is applicable only when a TLS session is
          being used.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent=".Security.Certificate."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="CABundle" access="readWrite" version="2.19">
        <description>
          Specifies the group of CA certificate(s) that the server must use to
          validate the certificate presented by the remote client. These CA
          certificates form a trust chain that the client certificate must
          match, ensuring that only clients with trusted certificates can
          establish a connection. This parameter supports multiple CA
          certificates to accommodate different client certificate issuers.
          This parameter is applicable only when a TLS session is being used.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent=".Security.CABundle."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="CACertificate" access="readWrite" status="deprecated">
        <description>
          Points to the CA certificate that must be used by the web interface.
          The {{param}} is used to validate the web client certificate.
          {{param|Protocol}} MUST be set to ''HTTPS''

          {{deprecated|2.19|Replaced by {{param|CABundle}} which can now
          contain one or more reference.}}
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent=".Security.Certificate."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite">
        <description>
          The IP or Logical Interface associated with the {{object}} entry.
          Example:

          * ''Device.IP.Interface.1''

          * ''Device.Logical.Interface.1''

          {{template|INTERFACE-ROUTING}}
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Port" access="readWrite">
        <description>
          Listen port number.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="65535"/>
          </unsignedInt>
          <default type="object" value="443"/>
        </syntax>
      </parameter>

      <parameter name="Protocol" access="readWrite">
        <description>
          Protocol being used.
        </description>
        <syntax>
          <string>
            <enumerationRef targetParam="#.HTTPAccessSupportedProtocols"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="AllowedHosts" access="readWrite">
        <description>
          Specifies which hostnames are permitted to be served by the web
          interface.

          This could be done by comparing the Host: HTTP header in an incoming
          request which will result in the request being routed to this
          instance, in the case that the device supports Virtual Hosting.

          If this string is empty then this instance acts as a "default" host,
          i.e. it will handle requests for which the Host header does not match
          any other instance.
        </description>
        <syntax>
          <list/>
          <string/>
        </syntax>
      </parameter>

      <parameter name="AllowedPathPrefixes" access="readWrite">
        <description>
          Each string must be a partial path which will result in an incoming
          request being routed to this instance.
        </description>
        <syntax>
          <list/>
          <string/>
          <default type="object" value="[/]"/>
        </syntax>
      </parameter>

      <parameter name="AllowAllIPv4" access="readWrite" version="2.18">
        <description>
          Allow access from any IPv4 address. The source prefixes defined in
          {{param|IPv4AllowedSourcePrefix}} will be ignored.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="IPv4AllowedSourcePrefix" access="readWrite"
          version="2.18">
        <description>
          Allow only access from the provided list of IPv4 prefixes.

          When {{param}} is set to {{empty}} and {{param|AllowAllIPv4}} is set
          to ''false'', no incoming connections are allowed.

          When {{param|AllowAllIPv4}} is set ''true'', {{param}} is ignored.
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="AllowAllIPv6" access="readWrite" version="2.18">
        <description>
          Allow access from any IPv6 address. The source prefixes defined in
          {{param|IPv6AllowedSourcePrefix}} will be ignored.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="IPv6AllowedSourcePrefix" access="readWrite"
          version="2.18">
        <description>
          Allow only access from the provided list of IPv6 prefixes.

          When {{param}} is set to {{empty}} and {{param|AllowAllIPv6}} is set
          to ''false'', no incoming connections are allowed.

          When {{param|AllowAllIPv6}} is set ''true'', {{param}} is ignored.
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="AutoDisableDuration" access="readWrite">
        <description>
          Indicates in {{units}} when the web interface will be automatically
          disabled. When ''0'' is specified, the web interface will not be
          automatically disabled.

          For example if the web interface is to be active for only 30 minutes,
          then this parameter would be set to 1800 {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="TimeLeft" access="readOnly" activeNotify="canDeny">
        <description>
          The number of {{units}} remaining before the web interface will be
          disabled. ''0'' means that the web interface is disabled or no
          {{param|AutoDisableDuration}} was specified.

          Example: The {{param|AutoDisableDuration}} parameter has been set to
          1800 seconds and the web interface was enabled 600 seconds ago. This
          means that the {{param}} will return 1200 seconds, which is the
          remaining time before the web interface will be disabled.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ActivationDate" access="readOnly">
        <description>
          Indicates when the web interface was enabled.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

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

    <object name="Device.UserInterface.HTTPAccess.{i}.Session.{i}."
        access="readOnly" numEntriesParameter="SessionNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.16">
      <description>
        Web server session list.

        Note: This parameter was demoted to readOnly in the Device:2.17
        version.
      </description>
      <uniqueKey functional="false">
        <parameter ref="SessionID"/>
      </uniqueKey>

      <parameter name="SessionID" access="readOnly">
        <description>
          Session identifier.
        </description>
        <syntax>
          <string>
            <size maxLength="4096"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="User" access="readOnly">
        <description>
          The user to whom the session belongs. When the user is unknown
          {{empty}} string SHOULD be used.

          Note: This parameter was demoted to readOnly in the Device:2.17
          version.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent=".Users.User."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="IPAddress" access="readOnly">
        <description>
          The IP address of the remote web client, connected to the web
          interface.
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
        </syntax>
      </parameter>

      <parameter name="Port" access="readOnly">
        <description>
          Port number of the remote web client, connected to the web interface.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Protocol" access="readOnly">
        <description>
          Protocol being used.
        </description>
        <syntax>
          <string>
            <enumerationRef targetParam="##.HTTPAccessSupportedProtocols"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="StartDate" access="readOnly">
        <description>
          Indicates when the session was created.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.UserInterface.RemoteAccess." access="readOnly"
        minEntries="1" maxEntries="1" version="2.0" status="deleted">
      <description>
        This object contains parameters relating to remotely accessing the
        CPE's user interface.

        Remote access is defined as any entity not of a local subnet attempting
        to connect to the CPE.

        Remote access requires user authentication. To provide remote access
        authentication the CPE MUST support a "User" table with at least one
        instance that has "RemoteAccessCapable" set to {{true}}.

        {{deprecated|2.16|due to the introduction of {{object|#.HTTPAccess}}}}

        {{obsoleted|2.18}}

        {{deleted|2.19}}
      </description>

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

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

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

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

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

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

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

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

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

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

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

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

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

    <object name="Device.UserInterface.Messages." access="readOnly"
        minEntries="1" maxEntries="1" version="2.11">
      <description>
        Definition of user information message displays.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables and displays the user information message.
        </description>
        <syntax>
          <boolean/>
          <default type="factory" value="true"/>
        </syntax>
      </parameter>

      <parameter name="Title" access="readWrite">
        <description>
          Message title to be displayed.
        </description>
        <syntax>
          <string>
            <size maxLength="128"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SubTitle" access="readWrite">
        <description>
          Message sub title to be displayed.
        </description>
        <syntax>
          <string>
            <size maxLength="128"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Text" access="readWrite">
        <description>
          Message text.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="IconType" access="readWrite">
        <description>
          Icon to be displayed.
        </description>
        <syntax>
          <string>
            <enumeration value="None"/>
            <enumeration value="Greeting"/>
            <enumeration value="Information"/>
            <enumeration value="Warning"/>
            <enumeration value="Important"/>
            <enumeration value="Urgent"/>
            <enumeration value="Advertisement"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="MessageColor" access="readWrite">
        <description>
          The color of message text 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 message screen background in RGB hexadecimal
          notation (e.g., FF0088).
        </description>
        <syntax>
          <hexBinary>
            <size minLength="3" maxLength="3"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="TitleColor" access="readWrite">
        <description>
          The color of the message title in RGB hexadecimal notation (e.g.,
          FF0088).
        </description>
        <syntax>
          <hexBinary>
            <size minLength="3" maxLength="3"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="SubTitleColor" access="readWrite">
        <description>
          The color of the sub title in RGB hexadecimal notation (e.g.,
          FF0088).
        </description>
        <syntax>
          <hexBinary>
            <size minLength="3" maxLength="3"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="RequestedNumberOfRepetitions" access="readWrite">
        <description>
          The number of times the device SHOULD repeat the message.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ExecutedNumberOfRepetitions" access="readOnly">
        <description>
          The number of times the device repeated the message.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.SFPs." access="readOnly" minEntries="1"
        maxEntries="1" version="2.19">
      <description>
        This object describes the Small Form-Factor Pluggable (SFP) cages and
        the transceivers hosted in them. The object definition is based on
        parts of {{bibref|SFF-8024}} and {{bibref|SFF-8472}}. This data model
        is extensible to support new SFP management protocol standards in the
        future.
      </description>

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

    <object name="Device.SFPs.SFPCage.{i}." access="readOnly"
        numEntriesParameter="SFPCageNumberOfEntries" minEntries="0"
        maxEntries="unbounded" dmr:fixedObject="true" version="2.19">
      <description>
        This object describes a cage into which an SFP is inserted. This object
        can also describe an instance of Small Form Factor (SFF) units soldered
        on to the platform.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Name"/>
      </uniqueKey>

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

      <parameter name="Name" access="readOnly">
        <description>
          The internal name used to identify the SFP Cage instance.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="SFPPresent" access="readOnly">
        <description>
          The value {{true}} indicates the presence of a SFP in the SFP Cage
          instance. The value is always {{true}} for a SFF. Note: A value of
          0x02 in {{param|SFF8024Identifier}} will also indicate the presence
          of an SFF.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="SFF8024Identifier" access="readOnly">
        <description>
          Ths identifier describes the type of SFP and the management protocol
          as per "Identifier Value" listed in {{bibref|SFF-8024|Table 4-1}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MgmtInterface" access="readOnly">
        <description>
          This parameter indicates the management interface used by the SFP.
          Refer {{bibref|SFF-8024|Table 4-1}} and {{bibref|SFF-8472}}.
        </description>
        <syntax>
          <string>
            <enumeration value="SFF-8472">
              <description>SFF 8472</description>
            </enumeration>
            <enumeration value="Unknown">
              <description>Unknown Mgmt Interface</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="SFPType" access="readOnly">
        <description>
          This value is applicable only when {{param|SFPPresent}} is {{true}}.
          The SFP Type is classified as one of: GPON, XGS-PON, Optical
          Ethernet, Copper Ethernet. If the SFP Type cannot be classified, the
          value is reported as "Unsupported".
        </description>
        <syntax>
          <string>
            <enumeration value="Unsupported">
              <description>Unclassified SFP</description>
            </enumeration>
            <enumeration value="G-PON">
              <description>GPON SFP</description>
            </enumeration>
            <enumeration value="XG-PON">
              <description>XG-PON SFP</description>
            </enumeration>
            <enumeration value="NG-PON2">
              <description>NG-PON2 SFP</description>
            </enumeration>
            <enumeration value="XGS-PON">
              <description>XGS-PON SFP</description>
            </enumeration>
            <enumeration value="EPON">
              <description>EPON SFP</description>
            </enumeration>
            <enumeration value="MoCA">
              <description>MoCA SFP</description>
            </enumeration>
            <enumeration value="Optical Ethernet">
              <description>Optical Ethernet</description>
            </enumeration>
            <enumeration value="Electrical Ethernet">
              <description>Electrical Ethernet</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="SFPReference" access="readOnly">
        <description>
          The path to the SFP management object associated with this interface.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="##.SFPs.Mgmt.SFF8472."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.SFPs.Mgmt." access="readOnly" minEntries="1"
        maxEntries="1" version="2.19">
      <description>
        This object describes the elements of a SFP that are exposed through
        the given Managment interface.
      </description>

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

    <object name="Device.SFPs.Mgmt.SFF8472.{i}." access="readOnly"
        numEntriesParameter="SFF8472NumberOfEntries" minEntries="0"
        maxEntries="unbounded" dmr:fixedObject="true" version="2.19">
      <description>
        This object describes an SFP in a cage or the SFF present that can be
        managed as per SFF-8472 standard.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Name"/>
      </uniqueKey>

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

      <parameter name="Name" access="readOnly">
        <description>
          The internal name used to identify this SFP instance.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.SFPs.Mgmt.SFF8472.{i}.Transceiver." access="readOnly"
        minEntries="1" maxEntries="1" version="2.19">
      <description>
        This object describes the Transceiver present in the SFP. The
        Transceiver object here models the electrical interface to the SFP from
        the host and the function that enables transmission and reception of
        electrical or optical signals over the link connected. The Transceiver
        object is agnostic of the underlying protocol used in the transmission.
      </description>

      <parameter name="Connector" access="readOnly">
        <description>
          The connector value as per {{bibref|SFF-8024|Table 4-3}} indicates
          the external optical or electrical cable connector provided as the
          media interface.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="1" maxLength="1"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="Transceiver" access="readOnly">
        <description>
          This field contains code for electronic or optical compatibility as
          per {{bibref|SFF-8472|Table 5-3}} and {{bibref|SFF-8024|Table 4-4}}.
          It corresponds to the values of DMM address 0xA0, bytes 3-10 and 36.
          The associated bit significant indicators (as identified in the above
          referenced tables) define the electronic or optical interfaces that
          are supported by the transceiver. At least one bit will be set in
          this field.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="9" maxLength="9"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="Encoding" access="readOnly">
        <description>
          This contains the code for high speed serial encoding algorithm as
          per {{bibref|SFF-8024|Table 4-2}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="BRNominal" access="readOnly">
        <description>
          This field contains the Nominal bit signaling rate, in units of
          {{units}} as per {{bibref|SFF-8472|Section 5-6}}. The bit rate
          includes those bits necessary to encode and delimit the signal as
          well as those bits carrying data information. A value of 0 indicates
          that the bit rate is not specified and must be determined from the
          transceiver technology. If the value is 255 (indicating 25.4GBd) then
          {{param|BRMax}} contains rate in units of 250MBd.
        </description>
        <syntax>
          <int>
            <units value="100 MBd"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="RateIdentifier" access="readOnly">
        <description>
          The rate identifier byte as per {{bibref|SFF-8472|Table 5-6}} refers
          to several (optional) industry standard definitions of Rate_Select or
          Application_Select control behaviors, intended to manage transceiver
          optimization for multiple operating rates.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="1" maxLength="1"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="VendorName" access="readOnly">
        <description>
          The vendor name is a string contains ASCII characters that contain
          the full name of the corporation, a commonly accepted abbreviation of
          the name of the corporation, the SCSI company code for the
          corporation, or the stock exchange code for the corporation. At least
          one of VendorName or VendorOUT shall contain valid data.
        </description>
        <syntax>
          <string>
            <size maxLength="16"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="VendorOUI" access="readOnly">
        <description>
          The vendor organizationally unique identifier field (vendor OUI) is a
          string that contains the IEEE Company Identifier for the vendor. An
          empty value indicates that the vendor OUI is unspecified.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="3" maxLength="3"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="VendorPN" access="readOnly">
        <description>
          The vendor part number provided by Transceiver vendor is a string of
          maximum 16 ASCII characters. An empty string indicates that the
          vendor PN is unspecified.
        </description>
        <syntax>
          <string>
            <size maxLength="16"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="VendorRev" access="readOnly">
        <description>
          The vendor revision number provided by Transceiver vendor is a string
          of maximum 4 ASCII characters. An empty string indicates that the
          vendor revision is unspecified.
        </description>
        <syntax>
          <string>
            <size maxLength="4"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="BRMax" access="readOnly">
        <description>
          This is the upper bit rate margin in units of 1%, within which the
          transceiver will still meet its specifications (BR, max) is specified
          in units of 1% above the nominal bit rate. A value of zero indicates
          that this field is not specified. However this field may contain the
          nominal bit rate in units of 250MBd if the value in
          {{param|BRNominal}} is 255. See {{bibref|SFF-8472|Section 8.4}}} -
          Address 0xA0, Byte 66.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="BRMin" access="readOnly">
        <description>
          This is the lower bit rate margin in units of {{units}}, within which
          the transceiver will still meet its specifications (BR, min) is
          specified in units of 1{{units}} below the nominal bit rate. A value
          of zero indicates that this field is not specified. However this
          field may also specify range of signaling rates specified in units of
          +/- 1{{units}} around the nominal signaling rate. See
          {{bibref|SFF-8472|Section 8.5}}} - Address 0xA0, Byte 67.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="100"/>
            <units value="percent"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="VendorSN" access="readOnly">
        <description>
          The serial number provided by the Transceiver vendor is a string of
          maximum 16 ASCII characters. An empty string indicates that the
          vendor SN is unspecified.
        </description>
        <syntax>
          <string>
            <size maxLength="16"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="DateCode" access="readOnly">
        <description>
          The transceiver vendor date code. The format is YYMMDDLL where YY -
          year (00 = 2000), MM - month (01 = January), DD - day (01 to 31), LL
          - optional vendor lot code.
        </description>
        <syntax>
          <string>
            <size maxLength="8"/>
            <pattern
                value="\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])[A-Za-z0-9]{0,2}"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LengthSMFkm" access="readOnly">
        <description>
          This value specifies the link length in {{units}} that is supported
          by the transceiver while operating in compliance with the applicable
          standards using single mode fiber. The value is in units of
          kilometers. A value of 255 means that the transceiver supports a link
          length greater than 254 km. A value of zero means that the
          transceiver does not support single mode fiber or that the length
          information must be determined from the transceiver technology.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
            <units value="kilometers"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LengthSMF" access="readOnly">
        <description>
          This value specifies link length that is supported by the transceiver
          while operating in compliance with applicable standards using 50
          micron multimode OM2 [500MHz*km at 850nm] fiber. The value is in
          units of {{units}}. A value of 255 means that the transceiver
          supports a link length greater than 2.54 km A value of zero means
          that the transceiver does not support 50 micron multimode fiber or
          that the length information must be determined from the transceiver
          technology.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
            <units value="10 meters"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LengthOM2" access="readOnly">
        <description>
          This value specifies link length that is supported by the transceiver
          while operating in compliance with applicable standards using 50
          micron multimode OM2 [500MHz*km at 850nm,] fiber. The value is in
          units of {{units}}. A value of 255 means that the transceiver
          supports a link length greater than 2.54 km A value of zero means
          that the transceiver does not support 50 micron multimode fiber or
          that the length information must be determined from the transceiver
          technology.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
            <units value="10 meters"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LengthOM1" access="readOnly">
        <description>
          This value specifies link length that is supported by the transceiver
          while operating in compliance with applicable standards using 62.5
          micron multimode OM1 [200 MHzkm at 850nm, 500 MHzkm at 1310nm] fiber.
          The value is in units of {{units}} . A value of 255 means that the
          transceiver supports a link length greater than 2.54 km. A value of
          zero means that the transceiver does not support 62.5 micron
          multimode fiber or that the length information must be determined
          from the transceiver technology.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
            <units value="10 meters"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LengthOM3" access="readOnly">
        <description>
          This value specifies link length that is supported by the transceiver
          while operating in compliance with applicable standards using 50
          micron multimode OM3 [2000 MHz*km] fiber. The value is in units of
          {{units}}. A value of 255 means that the transceiver supports a link
          length greater than 2.54 km. A value of zero means that the
          transceiver does not support 50 micron multimode fiber or that the
          length information must be determined from the transceiver
          Technology.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
            <units value="10 meters"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Wavelength" access="readOnly">
        <description>
          This value denotes the nominal transmitter output wavelength at room
          temperature measured in {{units}}. This field allows the user to read
          the laser wavelength directly, so it is not necessary to infer it
          from the transceiver “Code for Electronic Compatibility”. This also
          allows specification of wavelengths not covered in those fields, such
          as those used in coarse WDM systems.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
            <units value="nanometers"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="VerCompliance" access="readOnly">
        <description>
          The value indicates which revision of SFF requirements the
          transceiver complies with. See {{bibref|SFF-8472|Table 8-8}}.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="1" maxLength="1"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="OptCooledTrans" access="readOnly">
        <description>
          A value of {{false}} identifies a conventional uncooled (or
          unspecified) laser implementation. A value of {{true}} identifies a
          cooled laser transmitter implementation. See {{bibref|SFF-8472|Table
          8-3}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="OptPowerlvl" access="readOnly">
        <description>
          A value of {{false}} identifies Power Level 1 (or unspecified)
          requirements. A value of {{true}} identifies Power Level 2
          requirement. See {{bibref|SFF-8472|Table 8-3}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="OptLinearRcvr" access="readOnly">
        <description>
          A value of {{false}} identifies a conventional limiting (or
          unspecified) receiver output. A value of {{true}} identifies a linear
          receiver output. See {{bibref|SFF-8472|Table 8-3}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="OptRateSelect" access="readOnly">
        <description>
          A value of {{true}} indicates that the optional RATE_SELECT
          functionality is implemented. See {{bibref|SFF-8472|Table 8-3}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="OptTxDisable" access="readOnly">
        <description>
          A value of {{true}} indicates that the optional TX_DISABLE
          functionality is implemented. See {{bibref|SFF-8472|Table 8-3}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="OptTxFault" access="readOnly">
        <description>
          A value of {{true}} indicates that the optional Tx Fault monitoring
          is implemented. See {{bibref|SFF-8472|Table 8-3}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="OptInvertedLOS" access="readOnly">
        <description>
          A value of {{true}} indicates that Loss of Signal implemented with
          signal inverted from standard definition in SFP MSA (called “Signal
          Detect”) as per {{bibref|SFF-8472|Table 8-3}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="OptLOS" access="readOnly">
        <description>
          A value of {{true}} indicates that this optional transceiver signal
          for Loss of signal is implemented. See {{bibref|SFF-8472|Table 8-3}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="DMCtypeImplemented" access="readOnly">
        <description>
          A value of {{true}} indicates that Digital Diagnostic monitoring is
          implemented. See {{bibref|SFF-8472| Section 8-8}}. If set to
          {{true}}, received power monitoring, transmitted power monitoring,
          bias current monitoring, supply voltage monitoring and temperature
          monitoring are all implemented.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="DMCtypeInternalCal" access="readOnly">
        <description>
          A value of {{true}} indicates that transceiver is Internally
          calibrated. The transceiver directly reports calibrated values in
          units of current, power etc.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="DMCtypeExternalCal" access="readOnly">
        <description>
          A value of {{true}} indicates that transceiver is Externally
          calibrated. The reported values are A/D counts which must be
          converted to real world units using calibration values read using
          additional information from the SFP memory.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="DMCtypeRxAvgPwr" access="readOnly">
        <description>
          This value indicates the Received power measurement type. If
          {{true}}, average received power is monitored. If {{false}}, OMA is
          monitored.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="EOCalarmsImplemented" access="readOnly">
        <description>
          A value of {{true}} indicates that Alarms/Warnings flags for
          monitored quantities are implemented in the transceiver. See
          {{bibref|SFF-8472|Table 8-6}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="EOCSoftTxDisable" access="readOnly">
        <description>
          A value of {{true}} indicates that Soft TX_DISABLE control and
          monitoring is implemented in the transceiver. See
          {{bibref|SFF-8472|Table 8-6}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="EOCSoftTxFault" access="readOnly">
        <description>
          A value of {{true}} indicates that soft TX_FAULT monitoring is
          implemented in the transceiver. See {{bibref|SFF-8472|Table 8-6}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="EOCSoftRxLOS" access="readOnly">
        <description>
          A value of {{true}} indicates that soft RX_LOS is implemented in the
          transceiver. See {{bibref|SFF-8472|Table 8-6}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="EOCSoftRateSelect" access="readOnly">
        <description>
          A value of {{true}} indicates that this soft Rate Select and Control
          is implemented in the transceiver. See {{bibref|SFF-8472|Table 8-6}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="SFF8079AppSelect" access="readOnly">
        <description>
          A value of {{true}} indicates that application rate select feature is
          implemented in the transceiver. See {{bibref|SFF-8472|Table 8-6}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="SFF8431SoftRateSelect" access="readOnly">
        <description>
          A value of {{true}} indicates that Soft Rate Select as per SFF-8431
          is implemented in the transceiver. See {{bibref|SFF-8472|Table 8-6}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="EMCSPowerLvlOp" access="readOnly">
        <description>
          A value of {{true}} indicates Power Level Operation control and
          status is implemented in transceiver. See {{bibref|SFF-8472|Table
          10-1}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="EMCSPowerLvlSelect" access="readOnly">
        <description>
          A value of {{true}} enables selection of power level to transmit. See
          {{bibref|SFF-8472|Table 10-1}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.SFPs.Mgmt.SFF8472.{i}.Transceiver.Thresholds."
        access="readOnly" minEntries="1" maxEntries="1" version="2.19">
      <description>
        Each alarm and warning quantity has a corresponding high alarm, low
        alarm, high warning and low warning threshold. These factory preset
        values allows the determination of when a particular value is outside
        of “normal” limits as determined by the transceiver manufacturer. It is
        assumed that these values will vary with different technologies and
        different implementations and are vendor specific. The values here
        represent the values after any required calibration. See
        {{bibref|SFF-8472|Table 9-5}}.
      </description>

      <parameter name="HighTempAlarm" access="readOnly">
        <description>
          Temperature, measured in {{units}}, at which a high temperature alarm
          will be triggered.
        </description>
        <syntax>
          <int>
            <range minInclusive="-274"/>
            <units value="degrees celsius"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="HighTempWarning" access="readOnly">
        <description>
          Temperature, measured in {{units}}, at which a high temperature
          warning will be triggered.
        </description>
        <syntax>
          <int>
            <range minInclusive="-274"/>
            <units value="degrees celsius"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="LowTempWarning" access="readOnly">
        <description>
          Temperature, measured in {{units}}, below which a low temperature
          warning will be triggered.
        </description>
        <syntax>
          <int>
            <range minInclusive="-274"/>
            <units value="degrees celsius"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="LowTempAlarm" access="readOnly">
        <description>
          Temperature, measured in {{units}}, below which a low temperature
          alarm will be triggered.
        </description>
        <syntax>
          <int>
            <range minInclusive="-274"/>
            <units value="degrees celsius"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="HighVccAlarm" access="readOnly">
        <description>
          Voltage, measured in {{units}}, above which a high Vcc alarm will be
          triggered.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
            <units value="mV"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="HighVccWarning" access="readOnly">
        <description>
          Voltage, measured in {{units}}, above which a high Vcc warning will
          be triggered.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
            <units value="mV"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LowVccWarning" access="readOnly">
        <description>
          Voltage, measured in {{units}}, below which a low Vcc warning will be
          triggered.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
            <units value="mV"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LowVccAlarm" access="readOnly">
        <description>
          Voltage, measured in {{units}}, below which a low Vcc alarm will be
          triggered.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
            <units value="mV"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="HighTxBiasAlarm" access="readOnly">
        <description>
          Tx Bias, current measured in {{units}}, above which a High Tx Bias
          alarm will be triggered.
        </description>
        <syntax>
          <unsignedInt>
            <units value="µA"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="HighTxBiasWarning" access="readOnly">
        <description>
          Tx Bias, current measured in {{units}}, above which a High Tx Bias
          warning will be triggered.
        </description>
        <syntax>
          <unsignedInt>
            <units value="µA"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LowTxBiasWarning" access="readOnly">
        <description>
          Tx Bias, current measured in {{units}}, below which a Low Tx Bias
          warning will be triggered.
        </description>
        <syntax>
          <unsignedInt>
            <units value="µA"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LowTxBiasAlarm" access="readOnly">
        <description>
          Tx Bias, current measured in {{units}}, below which a Low Tx Bias
          alarm will be triggered.
        </description>
        <syntax>
          <unsignedInt>
            <units value="µA"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="HighTxPowerAlarm" access="readOnly">
        <description>
          Tx Power, measured in {{units}}, above which a High Tx Power alarm
          will be triggered.
        </description>
        <syntax>
          <int>
            <units value="0.1 dBm"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="HighTxPowerWarning" access="readOnly">
        <description>
          Tx Power, measured in {{units}}, above which a High Tx Power warning
          will be triggered.
        </description>
        <syntax>
          <int>
            <units value="0.1 dBm"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="LowTxPowerWarning" access="readOnly">
        <description>
          Tx Power, measured in {{units}}, below which a Low Tx Power warning
          will be triggered.
        </description>
        <syntax>
          <int>
            <units value="0.1 dBm"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="LowTxPowerAlarm" access="readOnly">
        <description>
          Tx Power, measured in {{units}}, below which a Low Tx Power alarm
          will be triggered.
        </description>
        <syntax>
          <int>
            <units value="0.1 dBm"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="HighRxPowerAlarm" access="readOnly">
        <description>
          Rx Power, measured in {{units}}, above which a High Rx Power alarm
          will be triggered.
        </description>
        <syntax>
          <int>
            <units value="0.1 dBm"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="HighRxPowerWarning" access="readOnly">
        <description>
          Rx Power, measured in {{units}}, above which a High Rx Power warning
          will be triggered.
        </description>
        <syntax>
          <int>
            <units value="0.1 dBm"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="LowRxPowerWarning" access="readOnly">
        <description>
          Rx Power, measured in {{units}}, below which a Low Rx Power warning
          will be triggered.
        </description>
        <syntax>
          <int>
            <units value="0.1 dBm"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="LowRxPowerAlarm" access="readOnly">
        <description>
          Rx Power, measured in {{units}}, below which a Low Rx Power alarm
          will be triggered.
        </description>
        <syntax>
          <int>
            <units value="0.1 dBm"/>
          </int>
        </syntax>
      </parameter>
    </object>

    <object name="Device.SFPs.Mgmt.SFF8472.{i}.Transceiver.Status."
        access="readOnly" minEntries="1" maxEntries="1" version="2.19">
      <description>
        This object contains real time diagnostic and control values and status
        fields. See {{bibref|SFF-8472|Table 9-16}}. 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 Status parameter transitions to a down state after the
        interface is disabled) or when the interface becomes administratively
        up (i.e. the interface’s Enable parameter transitions
        from false to true). Administrative and operational interface status is
        discussed in [Section 4.2.2/TR-181i2].
      </description>

      <parameter name="Temperature" access="readOnly">
        <description>
          Internally measured module temperature measured in {{units}}. See
          {{bibref|SFF-8472|Table 9-16}}. A value of -274 indicates that a good
          reading could not be obtained.
        </description>
        <syntax>
          <int>
            <range minInclusive="-274"/>
            <units value="degrees celsius"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="Vcc" access="readOnly">
        <description>
          Internally measured supply voltage in transceiver measured in
          {{units}}. See {{bibref|SFF-8472|Table 9-16}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
            <units value="mV"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TxBias" access="readOnly">
        <description>
          Internally measured TX Bias Current measured in {{units}}. See
          {{bibref|SFF-8472|Table 9-16}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="µA"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TxPower" access="readOnly">
        <description>
          Measured TX output power measured in {{units}}. See
          {{bibref|SFF-8472|Table 9-16}}.
        </description>
        <syntax>
          <int>
            <units value="0.1 dBm"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="RxPower" access="readOnly">
        <description>
          Measured RX input power measured in {{units}}. See
          {{bibref|SFF-8472|Table 9-16}}.
        </description>
        <syntax>
          <int>
            <units value="0.1 dBm"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="TxDisableState" access="readOnly">
        <description>
          The digital state of the TX Disable Input Pin. Updated within 100ms
          of change on pin. See {{bibref|SFF-8472|Table 9-16}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="SoftTxDisableSelect" access="readOnly">
        <description>
          This optional status control bit allows software disable of laser.
          See {{bibref|SFF-8472|Table 9-16}}. Setting this flag {{true}}
          disables the laser. If Soft TX Disable is not implemented, the
          transceiver ignores the value of this bit. Default power up value is
          zero/low.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="RS1State" access="readOnly">
        <description>
          An optional digital state of SFP input pin AS(1) per
          {{bibref|SFF-8079}} or RS(1) per {{bibref|SFF-8431}}. Updated within
          100ms of change on pin. See 0xA2 Byte 118, Bit 3 for Soft RS(1)
          Select control information. See {{bibref|SFF-8472|Table 9-16}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="RateSelectState" access="readOnly">
        <description>
          An optional digital state of SFP input pin AS(0) Rate_Select State
          [aka. “RS(0)”]. Updated within 100ms of change on pin. Note: This pin
          is also known as AS(0) in {{bibref|SFF-8079}} and RS(0) in
          {{bibref|SFF-8431}}. See {{bibref|SFF-8472|Table 9-16}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="SoftRateSelectSelect" access="readOnly">
        <description>
          Soft Rate_Select Select (aka. “RS(0)”). An optional Status or Control
          Bit. This flag allows software rate select control. Setting this flag
          {{true}} selects full bandwidth operation. This bit is logical OR
          with the hard Rate_Select, AS(0) or RS(0) pin value. Default at power
          up is logic zero/low. If Soft Rate Select is not implemented, the
          transceiver ignores the value of this bit. Note: Specific transceiver
          behaviors of this bit are identified in referenced documents. See
          {{bibref|SFF-8472|Table 9-16}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="TXFaultState" access="readOnly">
        <description>
          An optional digital state of the TX Fault Output Pin. Updated within
          100ms of change on pin. See {{bibref|SFF-8472|Table 9-16}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="RxLOSState" access="readOnly">
        <description>
          An optional digital state of the RX_LOS Output Pin. Updated within
          100ms of change on pin.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="DataReadyBarState" access="readOnly">
        <description>
          An optional flag that indicates the transceiver has achieved power up
          and data is ready. The flag remains high until data is ready to be
          read at which time the device sets the bit low. The default value
          SHOULD be false. See {{bibref|SFF-8472|Table 9-16}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.SFPs.Mgmt.SFF8472.{i}.Transceiver.Alarms."
        access="readOnly" minEntries="1" maxEntries="1" version="2.19">
      <description>
        This object contains the state of the SFP internal Diagnostic Alarms
        Flags {{bibref|SFF-8472|Table 9-17}}.
      </description>

      <parameter name="TemperatureHigh" access="readOnly">
        <description>
          Set to {{true}} when the internal temperature exceeds the high alarm
          level.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="TemperatureLow" access="readOnly">
        <description>
          Set to {{true}} when the internal temperature is below the low alarm
          level.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="VccHigh" access="readOnly">
        <description>
          Set to {{true}} when the internal supply voltage exceeds the high
          alarm level.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="VccLow" access="readOnly">
        <description>
          Set to {{true}} when the internal supply voltage is below the low
          alarm level.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="TxBiasHigh" access="readOnly">
        <description>
          Set to {{true}} when the TX Bias current exceeds the high alarm
          level.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="TxBiasLow" access="readOnly">
        <description>
          Set to {{true}} when the TX Bias current is below the low alarm
          level.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="TxPowerHigh" access="readOnly">
        <description>
          Set to {{true}} when the TX output power exceeds the high alarm
          level.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="TxPowerLow" access="readOnly">
        <description>
          Set to {{true}} when the TX output power is below the low alarm
          level.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="RxPowerHigh" access="readOnly">
        <description>
          Set to {{true}} when the Received Power exceeds the high alarm level.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="RxPowerLow" access="readOnly">
        <description>
          Set to {{true}} when the Received Power is below the low alarm level.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.SFPs.Mgmt.SFF8472.{i}.Transceiver.Warnings."
        access="readOnly" minEntries="1" maxEntries="1" version="2.19">
      <description>
        This object contains the state of the SFP internal Diagnostic Warning
        Flags {{bibref|SFF-8472|Table 9-17}}. Warning flags indicate conditions
        outside the normally guaranteed bounds but not necessarily causes of
        immediate link failures. Certain warning flags may also be defined by
        the manufacturer as end-of-life indicators (such as for higher than
        expected bias currents in a constant power control loop). A flag is set
        for each warning that is active. Implementation is vendor specific. A
        SFP module has the ability to monitor and warn on a high or low
        readings for a number of situations. This ability is internal to the
        SFP and is part of the digital diagnostic interface common to many
        SFPs. The associated field changes from {{false}} to {{true}} to signal
        a warning and changes from {{true}} to {{false}} to indicate that the
        warning has cleared. It is recommended that detection of an asserted
        flag bit will be verified by a second read of the flag at least 100ms
        later.
      </description>

      <parameter name="TemperatureHigh" access="readOnly">
        <description>
          Set to {{true}} when the internal temperature exceeds the high
          warning level.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="TemperatureLow" access="readOnly">
        <description>
          Set to {{true}} when the internal temperature is below the low
          warning level.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="VccHigh" access="readOnly">
        <description>
          Set to {{true}} when the internal supply voltage exceeds the high
          warning level.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="VccLow" access="readOnly">
        <description>
          Set to {{true}} when the internal supply voltage is below the low
          warning level.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="TxBiasHigh" access="readOnly">
        <description>
          Set to {{true}} when the TX Bias current exceeds the high warning
          level.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="TxBiasLow" access="readOnly">
        <description>
          Set to {{true}} when the TX Bias current is below the low warning
          level.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="TxPowerHigh" access="readOnly">
        <description>
          Set to {{true}} when the TX output power exceeds the high warning
          level.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="TxPowerLow" access="readOnly">
        <description>
          Set to {{true}} when the TX output power is below the low warning
          level.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="RxPowerHigh" access="readOnly">
        <description>
          Set to {{true}} when the Received Power exceeds the high warning
          level.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="RxPowerLow" access="readOnly">
        <description>
          Set to {{true}} when the Received Power is below the low warning
          level.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.InterfaceStack.{i}." access="readOnly"
        numEntriesParameter="InterfaceStackNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.0">
      <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 functional="true">
        <parameter ref="HigherLayer"/>
        <parameter ref="LowerLayer"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="HigherLayer" access="readOnly">
        <description>
          {{noreference}}A reference to the interface object corresponding to
          the higher layer of the relationship, i.e. the interface which runs
          on ''top'' of the interface identified by the corresponding instance
          of {{param|LowerLayer}}.

          When the referenced higher layer interface is deleted, the CPE MUST
          delete the table row.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LowerLayer" access="readOnly">
        <description>
          {{noreference}}A reference to the interface object corresponding to
          the lower layer of the relationship, i.e. the interface which runs
          ''below'' the interface identified by the corresponding instance of
          {{param|HigherLayer}}.

          When the referenced lower layer interface is deleted, the CPE MUST
          delete the table row.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetType="row"/>
          </string>
        </syntax>
      </parameter>

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

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

    <object name="Device.DSL." access="readOnly" minEntries="1" maxEntries="1"
        version="2.0">
      <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">
        <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}."
        numEntriesParameter="LineNumberOfEntries" minEntries="0"
        maxEntries="unbounded" dmr:fixedObject="true" version="2.0">
      <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 interface.

          This parameter is based on ''ifAdminStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="EnableDataGathering" access="readWrite" version="2.8"
          dmr:previousParameter="Enable">
        <description>
          Enables or disables data gathering on the DSL line.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status">
        <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}}.

          Because the interface includes layer 1, the {{enum|LowerLayerDown}}
          value SHOULD never be used.
        </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" version="2.0">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name">
        <description>
          The textual name of the interface as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" 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">
        <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" status="deleted">
        <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}}.

          {{deprecated|2.8|because its entries are out-of-date; {{param|XTSE}}
          points to a current list. Therefore its value MAY be {{empty}} if
          (and only if) {{param|XTSE}} is supported}}

          {{obsoleted|2.14}}

          {{deleted|2.15}}
        </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="XTSE" access="readOnly" version="2.8">
        <description>
          This configuration parameter defines the transmission system types to
          be allowed by the xTU on this {{object}} instance. Each bit is 0 if
          not allowed or 1 if allowed, as defined for the xTU transmission
          system enabling (XTSE) in ITU-T G.997.1.

          Note: This parameter is defined as xDSL Transmission system enabling
          (XTSE) in ITU-T G.997.1. For a full definition, see Clause 7.3.1.1.1
          of ITU-T Recommendation {{bibref|G.997.1}}.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="8" maxLength="8"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="StandardUsed" access="readOnly" status="deleted">
        <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}}.

          {{deprecated|2.8|because its entries are out-of-date; {{param|XTSE}}
          points to a current list. Therefore its value MAY be {{empty}} if
          (and only if) {{param|XTSUsed}} is supported.}}

          {{obsoleted|2.14}}

          {{deleted|2.15}}
        </description>
        <syntax>
          <string>
            <enumerationRef targetParam="StandardsSupported"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="XTSUsed" access="readOnly" version="2.8">
        <description>
          This parameter indicates which DSL standard and recommendation are
          currently in use by the {{object}} instance. Only one bit is set, as
          defined for the xTU transmission system enabling (XTSE) in ITU-T
          G.997.1.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="8" maxLength="8"/>
          </hexBinary>
        </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" status="deleted">
              <description>
                {{deleted|2.12|because the value is not defined in G997.1}}
              </description>
            </enumeration>
            <enumeration value="30a"/>
            <enumeration value="35b"/>
          </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.

          * 6: ITU T G.998.4 retransmission mode was not selected while
            RTX_MODE = FORCED or with RTX_MODE = RTX_TESTMODE.

          Note: In G.997.1, this parameter is called "Initialization
          success/failure cause". See Clause 7.5.1.6 of ITU-T Recommendation
          {{bibref|G.997.1}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="6"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="UPBOKLER" access="readOnly" version="2.8">
        <description>
          This parameter contains the estimated electrical loop length
          estimated by the VTU-R expressed in {{units}} at 1MHz (see O-UPDATE
          in section 12.2.4.2.1.2/G.993.2). The value is coded as an
          unsignedInt in the range 0 (coded as 0) to 128 dB (coded as 1280) in
          steps of {{units}}.

          Note: This parameter is defined as UPBOKLE-R in Clause 7.5.1.23.2 of
          ITU-T Recommendation {{bibref|G.997.1}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="1280"/>
            <units value="0.1 dB"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="UPBOKLEPb" access="readOnly" version="2.8">
        <description>
          VTU-O estimated upstream power back-off electrical length per band.

          This parameter is a vector of UPBO electrical length per-band
          estimates for each supported downstream band, expressed in {{units}}
          at 1 MHz (kl0) calculated by the VTU-R, based on separate
          measurements in the supported upstream bands. The value of each list
          element ranges from 0 to 128 dB in steps of {{units}}, with special
          value 204.7 which indicates that the estimate is greater than 128 dB.
          This parameter is required for the alternative electrical length
          estimation method (ELE-M1).

          Note: This parameter is defined as UPBOKLE-pb in Clause 7.5.1.23.3 of
          ITU-T Recommendation {{bibref|G.997.1}}.
        </description>
        <syntax>
          <list/>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="1280"/>
            <range minInclusive="2047" maxInclusive="2047"/>
            <units value="0.1 dB"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="UPBOKLERPb" access="readOnly" version="2.8">
        <description>
          VTU-R estimated upstream power back-off electrical length per band.

          This parameter is a vector of UPBO electrical length per-band
          estimates for each supported downstream band, expressed in {{units}}
          at 1 MHz (kl0) calculated by the VTU-R, based on separate
          measurements in the supported downstream bands. The value of each
          list element ranges from 0 to 128 dB in steps of {{units}}, with
          special value 204.7 which indicates that the estimate is greater than
          128 dB. This parameter is required for the alternative electrical
          length estimation method (ELE-M1).

          The value of each list element is coded as an unsigned 16 bit number
          in the range 0 (coded as 0) to 128 dB (coded as 1280) in steps of
          {{units}}.

          Note: This parameter is defined as UPBOKLE-R-pb in Clause 7.5.1.23.4
          of ITU-T Recommendation {{bibref|G.997.1}}.
        </description>
        <syntax>
          <list/>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="1280"/>
            <range minInclusive="2047" maxInclusive="2047"/>
            <units value="0.1 dB"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RXTHRSHds" access="readOnly" version="2.8">
        <description>
          UPBO downstream receiver signal level threshold.

          This parameter reports the downstream received signal level threshold
          value used in the alternative electrical length estimation method
          (ELE-M1). This parameter represents an offset from -100 dBm/Hz, and
          ranges from -64 dB to 0 dB in steps of {{units}}.

          The value is coded as a 16 bit number in the range -64 (coded as
          -640) to 0 dB (coded as 0) in steps of {{units}}.

          Note: See ITU-T Recommendation {{bibref|G.997.1}}.
        </description>
        <syntax>
          <int>
            <range minInclusive="-640" maxInclusive="0"/>
            <units value="0.1 dB"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="ACTRAMODEds" access="readOnly" version="2.8">
        <description>
          This parameter indicates the actual active rate adaptation mode in
          the downstream direction.

          * If {{param}} equals 1, the link is operating in RA-MODE 1 (MANUAL).

          * If {{param}} equals 2, the link is operating in RA-MODE 2
            (AT_INIT).

          * If {{param}} equals 3, the link is operating in RA-MODE 3
            (DYNAMIC).

          * If {{param}} equals 4, the link is operating in RA-MODE 4 (DYNAMIC
            with SOS).

          Note: This parameter is defined as ACT-RA-MODEds in Clause 7.5.1.33.1
          of ITU-T Recommendation {{bibref|G.997.1}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="4"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ACTRAMODEus" access="readOnly" version="2.8">
        <description>
          This parameter indicates the actual active rate adaptation mode in
          the upstream direction.

          * If {{param}} equals 1, the link is operating in RA-MODE 1 (MANUAL).

          * If {{param}} equals 2, the link is operating in RA-MODE 2
            (AT_INIT).

          * If {{param}} equals 3, the link is operating in RA-MODE 3
            (DYNAMIC).

          * If {{param}} equals 4, the link is operating in RA-MODE 4 (DYNAMIC
            with SOS).

          Note: This parameter is defined as ACT-RA-MODEus in Clause 7.5.1.33.2
          of ITU-T Recommendation {{bibref|G.997.1}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="4"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ACTINPROCds" access="readOnly" version="2.8">
        <description>
          This parameter reports the actual impulse noise protection (INP) of
          the robust overhead channel (ROC) in the downstream direction. The
          format and usage is identical to the channel status parameter
          {{param|#.Channel.{i}.ACTINP}}.

          Note: This parameter is defined as ACTINP-ROC-ds in Clause 7.5.1.34.1
          of ITU-T Recommendation {{bibref|G.997.1}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ACTINPROCus" access="readOnly" version="2.8">
        <description>
          This parameter reports the actual impulse noise protection (INP) of
          the robust overhead channel (ROC) in the upstream direction. The
          format and usage is identical to the channel status parameter
          {{param|#.Channel.{i}.ACTINP}}.

          Note: This parameter is defined as ACTINP-ROC-us in Clause 7.5.1.34.2
          ITU-T Recommendation {{bibref|G.997.1}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SNRMROCds" access="readOnly" version="2.8">
        <description>
          This parameter reports the actual signal-to-noise margin of the
          robust overhead channel (ROC) in the downstream direction (expressed
          in {{units}}). The format is identical to the format of the line
          status parameter SNRM margin {{param|DownstreamNoiseMargin}}.

          Note: This parameter is defined as SNRM-ROC-ds in Clause 7.5.1.35.1
          ITU-T Recommendation {{bibref|G.997.1}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="0.1 dB"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SNRMROCus" access="readOnly" version="2.8">
        <description>
          This parameter reports the actual signal-to-noise margin of the
          robust overhead channel (ROC) in the upstream direction (expressed in
          {{units}}). The format is identical to the format of the line status
          parameter SNRM margin ({{param|UpstreamNoiseMargin}}).

          Note: This parameter is defined as SNRM-ROC-us in Clause 7.5.1.35.2
          ITU-T Recommendation {{bibref|G.997.1}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="0.1 dB"/>
          </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">
        <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">
        <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}}).

          Doesn't apply to VDSL2 {{bibref|G.993.2}}. Otherwise has the same
          value as the single element of {{param|TestParams.SATNus}}.
        </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}}).

          Doesn't apply to VDSL2 {{bibref|G.993.2}}. Otherwise has the same
          value as the single element of {{param|TestParams.SATNds}}.
        </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="XTURVersion" access="readOnly" version="2.17">
        <description>
          xTU-R version field as defined in {{bibref|G.997.1|Section 7.4.6}}.
          It shall contain the xTU-R firmware version and the xTU-R model,
          encoded in this order and separated by a space character, i.e.,
          '(xTU-R firmware version) (xTU-R model)'.
        </description>
        <syntax>
          <string>
            <size maxLength="16"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="XTURSerial" access="readOnly" version="2.17">
        <description>
          xTU-R serial number as defined in {{bibref|G.997.1|Section 7.4.8}}.
          It shall contain the equipment serial number, the equipment model and
          the equipment firmware version. All shall be encoded in this order
          and separated by space characters, i.e., '(equipment serial number)
          (equipment model) (equipment firmware version)'.
        </description>
        <syntax>
          <string>
            <size maxLength="32"/>
          </string>
        </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="XTURVendorSpecific" access="readOnly" version="2.17">
        <description>
          xTU-R vendor-specific information as defined in {{bibref|G.994.1}}.
          This corresponds to the two-octet vendor-specific information, which
          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 {{bibref|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="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="XTURSystemVendor" access="readOnly" version="2.17">
        <description>
          xTU-R system vendor identifier as defined in {{bibref|G.997.1|Section
          7.4.4}}. This corresponds to the four-octet provider code, which MUST
          be represented as eight hexadecimal digits as defined in
          {{bibref|G.994.1}} as Vendor ID.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="4" maxLength="4"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="XTURSystemVendorSpecific" access="readOnly"
          version="2.17">
        <description>
          xTU-R system vendor-specific information as defined in
          {{bibref|G.997.1|Section 7.4.4}}. This corresponds to the two-octet
          vendor-specific information, which MUST be represented as four
          hexadecimal digits as defined in {{bibref|G.994.1}} as Vendor ID.

          Note: 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="XTURSystemCountry" access="readOnly" version="2.17">
        <description>
          T.35 country code of the xTU-R system vendor as defined in
          {{bibref|G.997.1|Section 7.4.4}}, where the two-octet value defined
          in {{bibref|G.997.1}} MUST be represented as four hexadecimal digits.
        </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="XTUCVersion" access="readOnly" version="2.17">
        <description>
          The xTU-C version number is the version number as inserted by the
          xTU-C in the overhead messages ({{bibref|G.992.3}},
          {{bibref|G.992.4}}, {{bibref|G.992.5}} and {{bibref|G.993.2}}). It is
          for version control and is vendor specific information. It consists
          of up to 16 binary octets.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="16" maxLength="16"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="XTUCSerial" access="readOnly" version="2.17">
        <description>
          xTU-C serial number as defined in {{bibref|G.997.1|Section 7.4.7}}.
          This corresponds to the equipment serial number.
        </description>
        <syntax>
          <string>
            <size maxLength="32"/>
          </string>
        </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="XTUCVendorSpecific" access="readOnly" version="2.17">
        <description>
          xTU-C vendor-specific information as defined in
          {{bibref|G.997.1|Section 7.4.3}}. This corresponds to the two-octet
          vendor-specific information, which MUST be represented as four
          hexadecimal digits as defined in G.994.1 as Vendor ID.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="2" maxLength="2"/>
          </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="XTUCSystemVendor" access="readOnly" version="2.17">
        <description>
          xTU-C system vendor identifier as defined in {{bibref|G.997.1|Section
          7.4.3}}. This corresponds to the four-octet provider code, which MUST
          be represented as eight hexadecimal digits as defined in
          {{bibref|G.994.1}} as Vendor ID..
        </description>
        <syntax>
          <hexBinary>
            <size minLength="4" maxLength="4"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="XTUCSystemVendorSpecific" access="readOnly"
          version="2.17">
        <description>
          xTU-C system vendor-specific information as defined in
          {{bibref|G.997.1|Section 7.4.4}}. This corresponds to the two-octet
          vendor-specific information, which MUST be represented as four
          hexadecimal digits as defined in {{bibref|G.994.1}} as Vendor ID..

          Note: 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="XTUCSystemCountry" access="readOnly" version="2.17">
        <description>
          T.35 country code of the xTU-C system vendor as defined in
          {{bibref|G.997.1|Section 7.4.4}}, where the two-octet value defined
          in G.997.1 MUST be represented as four hexadecimal digits.
        </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." minEntries="1" maxEntries="1"
        version="2.0">
      <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="Reset" access="readWrite" version="2.19">
        <description>
          Set this to {{true}} to reset all this object's statistics counters
          to zero.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BytesSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface,
          including framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface, including
          framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} that could not be transmitted
          because of errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} that contained errors
          preventing them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </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" version="2.0">
      <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 {{units}} (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>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SeverelyErroredSecs" access="readOnly"
          activeNotify="canDeny">
        <description>
          Total number of severely errored {{units}} (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>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DSL.Line.{i}.Stats.Showtime." access="readOnly"
        minEntries="1" maxEntries="1" version="2.0">
      <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 {{units}} 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>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SeverelyErroredSecs" access="readOnly"
          activeNotify="canDeny">
        <description>
          Number of severely errored {{units}} 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>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DSL.Line.{i}.Stats.LastShowtime." access="readOnly"
        minEntries="1" maxEntries="1" version="2.0">
      <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 {{units}} 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>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SeverelyErroredSecs" access="readOnly"
          activeNotify="canDeny">
        <description>
          Number of severely errored {{units}} 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>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DSL.Line.{i}.Stats.CurrentDay." access="readOnly"
        minEntries="1" maxEntries="1" version="2.0">
      <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 {{units}} 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>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SeverelyErroredSecs" access="readOnly"
          activeNotify="canDeny">
        <description>
          Number of severely errored {{units}} 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>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DSL.Line.{i}.Stats.QuarterHour." access="readOnly"
        minEntries="1" maxEntries="1" version="2.0">
      <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 {{units}} 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>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SeverelyErroredSecs" access="readOnly"
          activeNotify="canDeny">
        <description>
          Number of severely errored {{units}} 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>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DSL.Line.{i}.TestParams." access="readOnly"
        minEntries="1" maxEntries="1" version="2.0">
      <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, 8, and
          16.

          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, 8, and 16.

          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, 8, and 16.

          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 averaged across
          all sub-carriers in the frequency band, as computed during
          initialization. Number of elements is dependent on the number of
          downstream bands but will exceed one only for ITU-T 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="35"/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="LATNus" access="readOnly" activeNotify="canDeny">
        <description>
          {{list}} Indicates the upstream line attenuation averaged across all
          sub-carriers in the frequency band, as computed during
          initialization. Number of elements is dependent on the number of
          upstream bands but will exceed one only for ITU-T 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="35"/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="SATNds" access="readOnly" activeNotify="canDeny">
        <description>
          {{list}} Indicates the downstream signal attenuation averaged across
          all active sub-carriers in the frequency 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 ITU-T
          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="35"/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="SATNus" access="readOnly" activeNotify="canDeny">
        <description>
          {{list}} Indicates the upstream signal attenuation averaged across
          all active sub-carriers in the frequency 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 ITU-T
          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="35"/>
          </list>
          <string/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DSL.Line.{i}.DataGathering." access="readOnly"
        minEntries="1" maxEntries="1" version="2.8">
      <description>
        This object models the DSL data gathering function at the VTU-R. This
        only applies to VDSL2.

        Note: see ITU-T Recommendation {{bibref|G.993.2}}.
      </description>

      <parameter name="LoggingDepthR" access="readOnly">
        <description>
          This parameter is the maximum depth of the entire data gathering
          event buffer at the VTU-R, in number of {{units}}, where each of the
          {{units}} consists of 6 bytes indicating a data gathering event as
          defined in {{bibref|G.993.2}}.

          Note: This parameter is defined as LOGGING_DEPTH_R in Clause 7.5.3.2
          of ITU-T Recommendation {{bibref|G.997.1}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="records"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ActLoggingDepthReportingR" access="readOnly">
        <description>
          This parameter is actual logging depth that is used for reporting the
          VTU-R event trace buffer over the eoc channel, in number of
          {{units}}, where each of the {{units}} consists of 6 bytes indicating
          a data gathering event as defined in {{bibref|G.993.2}}.

          Note: This parameter is defined as ACT_LOGGING_DEPTH_REPORTING_R in
          Clause 7.5.3.4 of ITU-T Recommendation {{bibref|G.997.1}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="records"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="EventTraceBufferR" access="readOnly">
        <description>
          This parameter identifies the log file of the the data gathering
          event trace buffer containing the event records that originated at
          the VTU-R.

          This indicates the table entry that represents a Vendor Log File that
          contains the data gathering buffer at the VTU-R in the
          {{object|###.DeviceInfo.VendorLogFile}} table.

          This data gathering buffer MAY be retrieved wia an upload RPC of the
          identified Vendor Log File.

          Note: This parameter is defined as EVENT_TRACE_BUFFER_R in Clause
          7.5.3.6 of ITU-T Recommendation {{bibref|G.997.1}} and Clause 11.5 of
          ITU-T Recommendation {{bibref|G.993.2}}.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong"
                targetParent="###.DeviceInfo.VendorLogFile." targetType="row"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DSL.Channel.{i}." access="readOnly"
        numEntriesParameter="ChannelNumberOfEntries" minEntries="0"
        maxEntries="unbounded" dmr:fixedObject="true" version="2.0">
      <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 interface.

          This parameter is based on ''ifAdminStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status">
        <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" version="2.0">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name">
        <description>
          The textual name of the interface as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" 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="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>

      <parameter name="ACTNDR" access="readOnly" version="2.8">
        <description>
          Actual net data rate expressed in {{units}}. Independent whether
          retransmission is used or not in a given transmit direction:

          * In L0 state, this parameter reports the net data rate (as specified
            in [ITU T G.992.3], [ITU T G.992.5] or [ITU T G.993.2]) at which
            the bearer channel is operating.

          * In L2 state, the parameter contains the net data rate (as specified
            in [ITU T G.992.3], [ITU T G.992.5] or [ITU T G.993.2]) in the
            previous L0 state.

          Note: See ITU-T Recommendation {{bibref|G.997.1}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="Kbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ACTINPREIN" access="readOnly" version="2.8">
        <description>
          Actual impulse noise protection against REIN, expressed in {{units}}.

          If retransmission is used in a given transmit direction, this
          parameter reports the actual impulse noise protection (INP) against
          REIN (under specific conditions detailed in [ITU T G.998.4]) on the
          bearer channel in the L0 state. In the L2 state, the parameter
          contains the INP in the previous L0 state.

          The value is coded in fractions of DMT symbols with a granularity of
          0.1 symbols.

          The range is from 0 to 25.4. A special value of 25.5 indicates an
          ACTINP_REIN of 25.5 or higher.

          Note: This parameter is defined as ACTINP_REIN in Clause 7.5.2.9 of
          ITU-T Recommendation {{bibref|G.997.1}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
            <units value="0.1 DMT symbols"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DSL.Channel.{i}.Stats." minEntries="1" maxEntries="1"
        version="2.0">
      <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="Reset" access="readWrite" version="2.19">
        <description>
          Set this to {{true}} to reset all this object's statistics counters
          to zero.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BytesSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface,
          including framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface, including
          framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} that could not be transmitted
          because of errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} that contained errors
          preventing them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </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" version="2.0">
      <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" version="2.0">
      <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" version="2.0">
      <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" version="2.0">
      <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" version="2.0">
      <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" version="2.0">
      <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 or a
        {{object|##.FAST.Line}} 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 by a Controller.

        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 functional="true">
        <parameter ref="GroupID"/>
      </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">
        <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" version="2.0">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name">
        <description>
          The textual name of the interface as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" 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="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 Controller.
        </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" dmr:noUnionObject="true">
              <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" dmr:noUnionObject="true">
              <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}.Stats." minEntries="1"
        maxEntries="1" version="2.0">
      <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="Reset" access="readWrite" version="2.19">
        <description>
          Set this to {{true}} to reset all this object's statistics counters
          to zero.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BytesSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface,
          including framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface, including
          framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} that could not be transmitted
          because of errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} that contained errors
          preventing them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="ErrorsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="DiscardPacketsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were not addressed to a multicast or broadcast
          address at this layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a multicast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a broadcast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnknownProtoPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received via the interface which were
          discarded because of an unknown or unsupported protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </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" version="2.0">
      <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" version="2.0">
      <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" version="2.0">
      <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}.BondedChannel.{i}."
        access="readOnly" numEntriesParameter="BondedChannelNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.0">
      <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 or one {{object|###.FAST.Line}}
        instance. There MUST be an instance of {{object}} for each DSL channel
        or FAST line that is bonded.

        When a {{object|##.Channel}} or {{object|###.FAST.Line}} is no longer
        bonded, then the CPE MUST delete the corresponding {{object}} instance.
        However, when a bonded {{object|##.Channel}} or
        {{object|###.FAST.Line}} 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 functional="true">
        <parameter ref="Channel"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.0">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </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 Controller.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef
                refType="strong"
                targetParent="
                  ##.Channel.
                  ###.FAST.Line."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Ethernet."
        access="readOnly" minEntries="1" maxEntries="1" version="2.0">
      <description>
        Per-channel {{bibref|G.998.2}} Ethernet-based bonding parameters.
      </description>
    </object>

    <object
        name="Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Ethernet.Stats."
        access="readOnly" minEntries="1" maxEntries="1" version="2.0">
      <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}.Ethernet." access="readOnly"
        minEntries="0" maxEntries="1" version="2.0"
        discriminatorParameter="BondScheme">
      <description>
        Ethernet-based bonding parameters {{bibref|G.998.2}}.
      </description>
    </object>

    <object name="Device.DSL.BondingGroup.{i}.Ethernet.Stats."
        access="readOnly" minEntries="1" maxEntries="1" version="2.0">
      <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" version="2.0">
      <description>
        The DSL Diagnostics object.
      </description>
    </object>

    <object name="Device.DSL.Diagnostics.ADSLLineTest." access="readOnly"
        minEntries="1" maxEntries="1" version="2.0">
      <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>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="DiagnosticsState">
            <enumeration value="None" access="readOnly"/>
            <enumeration value="Requested"/>
            <enumeration value="Canceled" optional="true"/>
            <enumeration value="Complete" access="readOnly"/>
            <enumeration value="Error" access="readOnly" optional="true"/>
            <enumeration value="Error_Internal" access="readOnly"/>
            <enumeration value="Error_Other" access="readOnly"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite" version="2.0">
        <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"
          version="2.0">
        <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"
          version="2.0">
        <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"
          version="2.0">
        <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"
          version="2.0">
        <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"
          version="2.0">
        <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"
          version="2.0">
        <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"
          version="2.0">
        <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"
          version="2.0">
        <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"
          version="2.0">
        <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"
          version="2.0">
        <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"
          version="2.0">
        <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"
          version="2.0">
        <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"
          version="2.0">
        <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"
          version="2.0">
        <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"
          version="2.0">
        <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"
          version="2.0">
        <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"
          version="2.0">
        <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"
          version="2.0">
        <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"
          version="2.0">
        <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"
          version="2.0">
        <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"
          version="2.0">
        <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"
          version="2.0">
        <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"
          version="2.0">
        <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"
          version="2.0">
        <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"
          version="2.0">
        <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"
          version="2.0">
        <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"
          version="2.0">
        <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"
          version="2.0">
        <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"
          version="2.0">
        <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"
          version="2.0">
        <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"
          version="2.0">
        <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"
          version="2.0">
        <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"
          version="2.0">
        <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"
          version="2.0">
        <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.DSL.Diagnostics.SELTUER." access="readOnly"
        minEntries="1" maxEntries="1" version="2.13">
      <description>
        This object contains DSL Single Ended Line Test - Physical Medium
        Dependent (SELT-PMD) Uncalibrated Echo Response (UER) diagnostics
        parameters.

        This object is for the CPE, aka the Transmission Unit - Remote end
        (TU-R).

        Reference: ITU-T Recommendation {{bibref|G.996.2|Clause A.2, SELT-PMD
        management entity}}.
      </description>

      <parameter name="DiagnosticsState" access="readWrite">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="DiagnosticsState">
            <enumeration value="None"/>
            <enumeration value="Requested"/>
            <enumeration value="Canceled" optional="true"/>
            <enumeration value="Complete" access="readOnly"/>
            <enumeration value="Error" access="readOnly" optional="true"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite" version="2.13">
        <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.Line." targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="UERMaxMeasurementDuration" access="readWrite"
          version="2.13">
        <description>
          This parameter is the SELT UER maximum measurement duration (MMD)
          measured in {{units}}.

          This parameter is defined as SELT_UER_MMD_R in ITU-T Recommendation
          {{bibref|G.996.2|Clause A.2.1.1}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="5" maxInclusive="240"/>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ExtendedBandwidthOperation" access="readOnly"
          version="2.13">
        <description>
          This parameter indicates if the option for extended bandwidth SELT is
          applied ({{true}}) or not applied ({{false}}).

          If the option for extended bandwidth SELT is applied to UER, then
          {{param|UERGroupSize}} has three valid values: 1, 2 and 12.

          If the option for extended bandwidth SELT is not applied to UER, then
          {{param|UERGroupSize}} has two valid values: 1 and 2.

          {{param|UERGroupSize}} is reported if the option for extended
          bandwidth UER SELT is supported; otherwise, reporting of the group
          size is optional.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="UER" access="readOnly" version="2.13">
        <description>
          The Uncalibrated Echo Response (UER) [a(0),b(0)], [a(1),b(1)], ...

          {{list|with each list item consisting of the following}}

          {{datatype|expand}}

          The value of UER at frequency i*{{param|UERGroupSize}}*Df =
          ({{param|UERScaleFactor}}/(2^31^))*(a(i)+j*b(i))/(2^31^) where Df =
          4.3125 kHz.

          This parameter is defined as CPE SELT uncalibrated echo response
          (SELT-UER-R) in ITU-T Recommendation {{bibref|G.996.2|Clause
          A.2.2.1}}.
        </description>
        <syntax>
          <list minItems="1" maxItems="4096" nestedBrackets="required"/>
          <dataType ref="UERComplex"/>
        </syntax>
      </parameter>

      <parameter name="UERScaleFactor" access="readOnly" version="2.13">
        <description>
          The Uncalibrated Echo Response (UER) scale factor.

          This parameter is defined as part of the CPE SELT uncalibrated echo
          response (SELT-UER-R) in ITU-T Recommendation {{bibref|G.996.2|Clause
          A.2.2.1}}.

          Note that the scale factor is chosen such that max(abs(a(i)),
          abs(b(i))) over all i is equal to 2^31^ - 1, which doesn't allow
          {{param}} to be zero.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="UERGroupSize" access="readOnly" version="2.13">
        <description>
          The Uncalibrated Echo Response (UER) group size, UER_G. In units of
          {{units}}.

          This parameter is defined as part of the CPE SELT uncalibrated echo
          response (SELT-UER-R) in ITU-T Recommendation {{bibref|G.996.2|Clause
          A.2.2.2}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="2"/>
            <range minInclusive="12" maxInclusive="12"/>
            <units value="subcarriers"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="UERVar" access="readOnly" version="2.13">
        <description>
          This parameter represents the variance of the {{param|UER}}. List
          items represent v(i), for values of i starting at i=0. The variance
          of the uncalibrated echo response for frequency
          i*{{param|UERGroupSize}}*Df is VAR(i*{{param|UERGroupSize}}*Df) = 3 -
          v(i)/2 dB where Df = 4.3125 kHz.

          This parameter is defined as SELT variance of uncalibrated echo
          response R (SELT UER-VAR-R) in {{bibref|G.996.2|Clause A.2.2.2}}.
        </description>
        <syntax>
          <list minItems="0" maxItems="4096" nestedBrackets="required"/>
          <int/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DSL.Diagnostics.SELTQLN." access="readOnly"
        minEntries="1" maxEntries="1" version="2.13">
      <description>
        This object contains DSL Single Ended Line Test - Physical Medium
        Dependent (SELT-PMD) Quiet Line Noise (QLN) diagnostics parameters.

        This object is for the CPE, aka the Transmission Unit - Remote end
        (TU-R).

        Reference: ITU-T Recommendation {{bibref|G.996.2|Clause A.2, SELT-PMD
        management entity}}.
      </description>

      <parameter name="DiagnosticsState" access="readWrite">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="DiagnosticsState">
            <enumeration value="None"/>
            <enumeration value="Requested"/>
            <enumeration value="Canceled" optional="true"/>
            <enumeration value="Complete" access="readOnly"/>
            <enumeration value="Error" access="readOnly" optional="true"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite" version="2.13">
        <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.Line." targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="QLNMaxMeasurementDuration" access="readWrite"
          version="2.13">
        <description>
          This parameter is the SELT QLN maximum measurement duration (MMD)
          measured in {{units}}.

          This parameter is defined as SELT_QLN_MMD_R in ITU-T Recommendation
          {{bibref|G.996.2|Clause A.2.1.2}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="240"/>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ExtendedBandwidthOperation" access="readOnly"
          version="2.13">
        <description>
          This parameter indicates if the option for extended bandwidth SELT is
          applied ({{true}}) or not applied ({{false}}).

          If the option for extended bandwidth SELT is applied to QLN, then
          {{param|QLNGroupSize}} has three valid values: 1, 2 and 12.

          If the option for extended bandwidth SELT is not applied to QLN, then
          {{param|QLNGroupSize}} has two valid values: 1 and 2.

          {{param|QLNGroupSize}} is reported if the option for extended
          bandwidth QLN SELT is supported; otherwise, reporting of the group
          size is optional.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="QLN" access="readOnly" version="2.13">
        <description>
          {{list}} List items represent SELT quiet line noise (QLN) per
          subcarrier group.

          Each list element is n(i), with i starting at 0. The value of QLN at
          frequency i*{{param|QLNGroupSize}}*Df with Df=4.3125 kHz is defined
          as QLN(i*{{param|QLNGroupSize}}*Df) = -23 - (n(i)/2) dBm/Hz. This
          data format supports a QLN granularity of 0.5 dB and an dynamic range
          of -150 to -23 dBm/Hz.

          Interpretation of the SELT_QLN_R value is defined in
          {{bibref|G.996.2|Clause A.2.2.3}}.
        </description>
        <syntax>
          <list>
            <size maxLength="61430"/>
          </list>
          <int/>
        </syntax>
      </parameter>

      <parameter name="QLNGroupSize" access="readOnly" version="2.13">
        <description>
          This parameter represents the Quiet Line Noise (QLN) group size. In
          units of {{units}}.

          This parameter is defined as part of the SELT_QLN_R in ITU-T
          Recommendation {{bibref|G.996.2|Clause A.2.2.4}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="2"/>
            <range minInclusive="12" maxInclusive="12"/>
            <units value="subcarriers"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DSL.Diagnostics.SELTP." access="readOnly"
        minEntries="1" maxEntries="1" version="2.13">
      <description>
        This object contains DSL Single-Ended Line Test - Processed (SELT-P)
        diagnostics parameters.

        This object is for the CPE, aka the Transmission Unit - Remote end
        (TU-R).

        Reference: ITU-T Recommendation {{bibref|G.996.2}}.
      </description>

      <parameter name="DiagnosticsState" access="readWrite">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="DiagnosticsState">
            <enumeration value="None"/>
            <enumeration value="Requested"/>
            <enumeration value="Canceled" optional="true"/>
            <enumeration value="Complete" access="readOnly"/>
            <enumeration value="Error" access="readOnly" optional="true"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite" version="2.13">
        <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.Line." targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="CapacityEstimateEnabling" access="readWrite"
          version="2.13">
        <description>
          Capacity estimate calculation enabling: This parameter is expressed
          as a boolean and takes the value {{false}} if xDSL performance
          estimation is not required, {{true}} otherwise.

          The capacity estimate calculation enabling parameter is defined in
          {{bibref|G.996.2|Clause B.2.1.1}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="CapacitySignalPSD" access="readWrite" version="2.13">
        <description>
          The capacity estimate signal Power Spectral Density (PSD):

          {{list|with each list item consisting of the following}}

          {{datatype|expand}}

          This capacity estimate signal PSD parameter is defined in ITU-T
          Recommendation {{bibref|G.996.2|Clause B.2.1.2}}.
        </description>
        <syntax>
          <list minItems="1" maxItems="48" nestedBrackets="required"/>
          <dataType ref="PSDBreakPointIndexAndLevel"/>
        </syntax>
      </parameter>

      <parameter name="CapacityNoisePSD" access="readWrite" version="2.13">
        <description>
          The capacity estimate noise Power Spectral Density (PSD):

          {{list|with each list item consisting of the following}}

          {{datatype|expand}}

          This capacity estimate noise PSD parameter is defined in ITU-T
          Recommendation {{bibref|G.996.2|Clause B.2.1.3}}.
        </description>
        <syntax>
          <list minItems="1" maxItems="48" nestedBrackets="required"/>
          <dataType ref="PSDBreakPointIndexAndLevel"/>
        </syntax>
      </parameter>

      <parameter name="CapacityTargetMargin" access="readWrite" version="2.13">
        <description>
          The capacity estimate target noise margin. The range of valid values
          is 0 to 31 dB, in steps of {{units}}.

          This capacity estimate target noise margin parameter is defined in
          ITU-T Recommendation {{bibref|G.996.2|Clause B.2.1.4}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="0.1 dB"/>
            <range minInclusive="0" maxInclusive="310"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LoopTermination" access="readOnly" version="2.13">
        <description>
          Loop termination indicator. {{enum}}

          This parameter is defined as LOOP-TERM in ITU-T Recommendation
          {{bibref|G.996.2|Clause B.1.1.1}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Open"/>
            <enumeration value="Short"/>
            <enumeration value="Powered on DSLAM/DPU" status="deleted">
              <description>
                {{obsoleted|2.14|because it's been removed from the ITU-T
                Recommendation}}

                {{deleted|2.16}}
              </description>
            </enumeration>
            <enumeration value="Powered on CPE"/>
            <enumeration value="Unknown"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LoopLength" access="readOnly" version="2.13">
        <description>
          This parameter is the loop length with units of {{units}}.

          This parameter is defined as the loop length parameter LOOP_LEN in
          ITU-T Recommendation {{bibref|G.996.2|Clause B.1.1.2}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="meters"/>
            <range minInclusive="0" maxInclusive="16383"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LoopTopology" access="readOnly" version="2.13">
        <description>
          {{list}} List items represent paired parameters [LOOP_SEG_LEN,
          LOOP_SEG_BTAP] representing a concatenation of loop segment types,
          where LOOP_SEG_LEN represents the length of the segment in meters;
          and LOOP_SEG_BTAP is a string that identifies the segment type as
          either "in series" or "bridged tap".

          The first loop segment in the list shall be the segment connected to
          the SELT-PMD block, subsequent loop segments in the list shall
          describe the loop in the direction toward the far-end loop
          termination.

          This Loop Topology parameter is defined in ITU-T Recommendation
          {{bibref|G.996.2|Clause B.1.1.3}}.
        </description>
        <syntax>
          <list>
            <size maxLength="256"/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="AttenuationCharacteristics" access="readOnly"
          version="2.13">
        <description>
          Specifies the list of attenuation characteristics.

          {{list|with each list item consisting of the following}}

          {{datatype|expand}}

          TFlog(i * {{param|TFlogGroupSize}} * Df) is represented by an integer
          k, 0 &lt;= k &lt;= 1022, where TFlog(i * {{param|TFlogGroupSize}} *
          Df) = 6.0 - k * 0.1. The special value of k of 1023 is used to
          indicate that no measurement could be done for this subcarrier
          because the attenuation is out of the range that can be represented.

          The attenuation characteristics TFlog(f) parameter is defined in
          ITU-T Recommendation {{bibref|G.996.2|Clause B.1.1.6}}.
        </description>
        <syntax>
          <list minItems="0" maxItems="8191" nestedBrackets="required"/>
          <dataType ref="SELTPAttenuationCharacteristicsIndexAndTFlog"/>
        </syntax>
      </parameter>

      <parameter name="TFlogGroupSize" access="readOnly" version="2.14">
        <description>
          This parameter represents the Transfer Function Log (TFlog) group
          size. In units of {{units}}.

          This parameter is defined as part of the SELT attenuation
          characteristics, {{param|AttenuationCharacteristics}}, defined in
          ITU-T Recommendation {{bibref|G.996.2|Clause B.1.1.6}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="2"/>
            <range minInclusive="12" maxInclusive="12"/>
            <units value="subcarriers"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MissingFilter" access="readOnly" version="2.13">
        <description>
          Missing micro-filter or splitter: This parameter is a binary
          indication of a missing or incorrectly installed splitter or
          micro-filter at the U-R reference point. A value of true represents a
          missing splitter.

          The missing micro-filter or splitter parameter is defined in
          {{bibref|G.996.2|Clause B.1.1.4}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="CapacityEstimate" access="readOnly" version="2.13">
        <description>
          Capacity Estimate: {{list}} This parameter represents the downstream
          and/or upstream capacity estimates in {{units}}.

          If only one value is supplied, then it's not specified whether it's
          the downstream value, the upstream value or some combination of the
          two. If two values are supplied, then the first is the downstream
          value and the second is the upstream value.

          The capacity estimate parameters are defined in
          {{bibref|G.996.2|Clause B.1.1.7}}.
        </description>
        <syntax>
          <list minItems="1" maxItems="2"/>
          <unsignedInt>
            <units value="kbit/s"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.FAST." access="readOnly" minEntries="1"
        maxEntries="1" version="2.11">
      <description>
        This object models FAST (defined in ITU Recommendation
        {{bibref|G.9701}}) lines. Each {{object|Line}} models a layer 1 FAST
        Line interface.
      </description>

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

    <object name="Device.FAST.Line.{i}."
        numEntriesParameter="LineNumberOfEntries" minEntries="0"
        maxEntries="unbounded" dmr:fixedObject="true" version="2.11">
      <description>
        FAST Line table (a stackable interface object as described in
        {{bibref|TR-181i2|Section 4.2}}).

        This table models physical FAST 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 interface.

          This parameter is based on ''ifAdminStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status">
        <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}}.

          Because the interface includes layer 1, the {{enum|LowerLayerDown}}
          value SHOULD never be used.
        </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" version="2.11">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name">
        <description>
          The textual name of the interface as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" 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">
        <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 FAST 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="AllowedProfiles" access="readOnly">
        <description>
          {{list}} List items indicate which FAST profiles are allowed on the
          line. {{enum}}

          Note: In G.997.2, this parameter is called PROFILES. See ITU-T
          Recommendation {{bibref|G.997.2}}.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="106a"/>
            <enumeration value="212a"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="CurrentProfile" access="readOnly">
        <description>
          Indicates which FAST profile is currently in use on the line.
        </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.9701}}.
        </description>
        <syntax>
          <string>
            <enumeration value="L0"/>
            <enumeration value="L2.1"/>
            <enumeration value="L2.2"/>
            <enumeration value="L3"/>
          </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. Configuration error. This error occurs if
            the line cannot reach L0 state due to a mismatch of configuration
            and FTU capabilities.

          * 2: Configuration not feasible on the line. This error occurs if the
            line cannot reach the L0 state due to a mismatch of configuration
            of line and noise characteristics.

          * 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 far-end FTU detected. This error occurs if the far-end FTU is
            not powered or not connected or if the line is too long to allow
            detection of a far-end FTU.

          * 5: Any other or unknown initialization failure cause.

          Note: In G.997.2, this parameter is called "Initialization
          success/failure cause". See Clause 7.20.2.1 of ITU-T

          Recommendation {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="5"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="UPBOKLER" access="readOnly">
        <description>
          This parameter reports the estimate of the electrical length
          expressed in {{units}}, as determined by the FTU-R (see clause
          7.3.1.4.2.1/{{bibref|G.9701}}) and conveyed in the R-MSG1
          initialization message (see clause 12.3.3.2.3/{{bibref|G.9701}}). The
          value is coded as an unsignedInt in the range 0 (coded as 0) to 128
          dB (coded as 1280) in steps of {{units}}.

          Note: This parameter is defined as UPBOKLE-R in Clause 7.10.4.2 of
          ITU-T Recommendation {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="1280"/>
            <units value="0.1 dB"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LastTransmittedDownstreamSignal" access="readOnly">
        <description>
          This parameter reports the downstream signal count of the last
          transmitted initialization signal in the last full or short
          initialization performed on the line. The valid values are 0..21. The
          downstream signal count is defined in clause
          12.3.1/{{bibref|G.9701}}.

          Note: See clause 7.10.2.2 ITU-T Recommendation {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="21"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LastTransmittedUpstreamSignal" access="readOnly">
        <description>
          This parameter reports the upstream signal count of the last
          transmitted initialization signal in the last full or short
          initialization performed on the line. The valid values are 0..21. The
          upstream signal count is defined in clause 12.3.1/{{bibref|G.9701}}.

          Note: See clause 7.10.2.3 ITU-T Recommendation {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="21"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="UPBOKLE" access="readOnly">
        <description>
          This parameter reports the electrical length expressed in {{units}},
          that would have been sent from the FTU-O to the FTU-R if the
          electrical length was not forced by the DPU-MIB. If the electrical
          length is not forced by the DPU-MIB, then this object reports the
          final electrical length, as determined by the FTU-O (see clause
          7.3.1.4.2.1/{{bibref|G.9701}}) and conveyed in the O-UPDATE
          initialization message (see clause 12.3.3.2.4/{{bibref|G.9701}}).

          Note: See clause 7.10.4.1 in ITU-T Recommendation {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="1280"/>
            <units value="0.1dB"/>
          </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">
        <description>
          This parameter reports the attainable net data rate expressed in
          {{units}} as defined in clause 11.4.1.1.2/{{bibref|G.9701}}.

          Note: This parameter is related to the G.997.2 parameter ATTNDRus.
          See clause 7.11.2.1 ITU-T Recommendation {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="Kbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="DownstreamMaxBitRate" access="readOnly">
        <description>
          This parameter reports the attainable net data rate expressed in
          {{units}} as defined in clause 11.4.1.1.2/{{bibref|G.9701}}.

          Note: This parameter is related to the G.997.2 parameter ATTNDRds.
          See clause 7.11.2.1 ITU-T Recommendation {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="Kbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="UpstreamNoiseMargin" access="readOnly"
          activeNotify="canDeny">
        <description>
          This parameter reports the signal-to-noise ratio margin (as defined
          in clause 9.8.3.2/{{bibref|G.9701}} and 11.4.1.3/{{bibref|G.9701}})
          in the upstream direction. A special value indicates that the
          signal-to-noise ratio margin is out of the range to be represented.
          The parameter is expressed in {{units}}.

          Note: In G.997.2, this parameter is called SNRMus. See ITU-T
          Recommendation {{bibref|G.997.2}}.
        </description>
        <syntax>
          <int>
            <units value="0.1dB"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="DownstreamNoiseMargin" access="readOnly"
          activeNotify="canDeny">
        <description>
          This parameter reports the signal-to-noise ratio margin (as defined
          in clause 9.8.3.2/{{bibref|G.9701}} and 11.4.1.3/{{bibref|G.9701}})
          in the upstream direction. A special value indicates that the
          signal-to-noise ratio margin is out of the range to be represented.
          The parameter is expressed in {{units}}.

          Note: In G.997.2, this parameter is called SNRMds. See ITU-T
          Recommendation {{bibref|G.997.2}}.
        </description>
        <syntax>
          <int>
            <units value="0.1dB"/>
          </int>
        </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 FAST 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 FAST line (expressed in
          {{units}}).
        </description>
        <syntax>
          <int>
            <units value="0.1dBmV"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="SNRMRMCds" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter reports the signal-to-noise margin for the robust
          management channel (RMC) in the downstream direction (express in
          {{units}}). A special value (-512) indicates that the signal-to-noise
          ratio margin for the RMC is out of the range to be represented. This
          parameter is defined in clauses 7.10.12.1 of ITU-T Recommendation
          {{bibref|G.997.2}}.
        </description>
        <syntax>
          <int>
            <units value="0.1dB"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="SNRMRMCus" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter reports the signal-to-noise margin for the robust
          management channel (RMC) in the upstream direction (express in
          {{units}}). A special value (-512) indicates that the signal-to-noise
          ratio margin for the RMC is out of the range to be represented. This
          parameter is defined in clauses 7.10.12.2 of ITU-T Recommendation
          {{bibref|G.997.2}}.
        </description>
        <syntax>
          <int>
            <units value="0.1dB"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="BITSRMCpsds" access="readOnly" activeNotify="canDeny">
        <description>
          {{list}} List items report the bit allocation values on RMC
          sub-carriers in RMC symbols in the downstream direction. Each pair
          composes of a sub-carrier index from 0..4095 and an 8 bit allocation
          value. There are maximum 512 pairs. This parameter is defined in
          clause 7.10.12.3 of ITU-T Recommendation {{bibref|G.997.2}}.
        </description>
        <syntax>
          <list>
            <size maxLength="4610"/>
          </list>
          <int/>
        </syntax>
      </parameter>

      <parameter name="BITSRMCpsus" access="readOnly" activeNotify="canDeny">
        <description>
          {{list}} List items report the bit allocation values on RMC
          sub-carriers in RMC symbols in the upstream direction. Each pair
          composes of a sub-carrier index from 0..4095 and an 8 bit allocation
          value. There are maximum 512 pairs. This parameter is defined in
          clause 7.10.12.4 of ITU-T Recommendation {{bibref|G.997.2}}.
        </description>
        <syntax>
          <list>
            <size maxLength="4610"/>
          </list>
          <int/>
        </syntax>
      </parameter>

      <parameter name="FEXTCANCELds" access="readOnly">
        <description>
          This indicates whether FEXT cancellation in the downstream direction
          from all the other vectored lines into the line in the vectored group
          is enabled (TRUE) or disabled (FALSE). This parameter is defined as
          FEXT_TO_CANCEL_ENABLEds in clause 7.1.7.1 of ITU Recommendation
          {{bibref|G.997.2}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="FEXTCANCELus" access="readOnly">
        <description>
          This indicates whether FEXT cancellation in the upstream direction
          from all the other vectored lines into the line in the vectored group
          is enabled (TRUE) or disabled (FALSE). This parameter is defined as
          FEXT_TO_CANCEL_ENABLEds in clause 7.1.7.1 of ITU Recommendation
          {{bibref|G.997.2}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="ETRds" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter reports the expected throughput rate expressed in
          {{units}} as defined in clause 7.11.1.2 of ITU-T Recommendation
          {{bibref|G.997.2}}
        </description>
        <syntax>
          <unsignedInt>
            <units value="Kbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ETRus" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter reports the expected throughput rate expressed in
          {{units}} as defined in clause 7.11.1.2 of ITU-T Recommendation
          {{bibref|G.997.2}}
        </description>
        <syntax>
          <unsignedInt>
            <units value="Kbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ATTETRds" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter reports the attainable expected throughput expressed
          in {{units}} as defined in clause 7.11.2.2 of ITU-T Recommendation
          {{bibref|G.997.2}}
        </description>
        <syntax>
          <unsignedInt>
            <units value="Kbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ATTETRus" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter reports the attainable expected throughput expressed
          in {{units}} as defined in clause 7.11.2.2 of ITU-T Recommendation
          {{bibref|G.997.2}}
        </description>
        <syntax>
          <unsignedInt>
            <units value="Kbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MINEFTR" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter reports the minimum error free throughput value
          expressed in {{units}} computed from power up as defined in clause
          11.4.1.1.3 of ITU-T Recommendation {{bibref|G.9701}}
        </description>
        <syntax>
          <unsignedInt>
            <units value="Kbps"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.FAST.Line.{i}.Stats." minEntries="1" maxEntries="1"
        version="2.11">
      <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="Reset" access="readWrite" version="2.19">
        <description>
          Set this to {{true}} to reset all this object's statistics counters
          to zero.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BytesSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface,
          including framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface, including
          framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} that could not be transmitted
          because of errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} that contained errors
          preventing them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="TotalStart" access="readOnly" activeNotify="canDeny">
        <description>
          FAST-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>
          FAST-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>
          FAST-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>
          FAST-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>
          FAST-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.FAST.Line.{i}.Stats.Total." access="readOnly"
        minEntries="1" maxEntries="1" version="2.11">
      <description>
        This object contains DSL line total statistics.

        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 {{units}} as defined in ITU-T Rec.
          {{bibref|G.997.2}}. An errored second (ES) is declared if, during a
          1-second interval, there are one or more crc anomalies, or one or
          more los defects, or one or more lor defects, or one or more lpr
          primitives.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SeverelyErroredSecs" access="readOnly"
          activeNotify="canDeny">
        <description>
          Total number of severely errored {{units}} as defined in ITU-T Rec.
          {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LOSS" access="readOnly" activeNotify="canDeny">
        <description>
          Total number of loss of signal {{units}} (LOSS) as defined in ITU-T
          Rec. {{bibref|G.997.2}}. A LOSS is declared if, during a 1-second
          interval, there are one or more los defects.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LORS" access="readOnly" activeNotify="canDeny">
        <description>
          Total number of loss of RMC {{units}} (LORS) as defined in ITU-T Rec.
          {{bibref|G.997.2}}. A LORS is declared if, during a 1-second
          interval, there are one or more lor defects.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="UAS" access="readOnly" activeNotify="canDeny">
        <description>
          Total number of unavailable {{units}} (UAS) as defined in ITU-T Rec.
          {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RTXUC" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter reports a count of uncorrected DTU anomalies (rtx_uc).
          This parameter is defined in clause 7.8.5 of ITU-T Rec.
          {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="RTXTX" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter reports a count of retransmitted DTU anomalies
          (rtx_tx). This parameter is defined in clause 7.8.6 of ITU-T Rec.
          {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SuccessBSW" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter reports a count of the successful bit swap (BSW)
          primitives. This parameter is defined as success_BSW in clause 7.7.20
          of ITU-T Rec. {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SuccessSRA" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter reports a count of the successful autonomous SRA
          (seamless rate adaptation) primitives. This parameter is defined as
          success_SRA in clause 7.7.21 of ITU-T Rec. {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SuccessFRA" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter reports a count of the successful FRA (fast rate
          adaptation) primitives. This parameter is defined as success_FRA in
          clause 7.7.22 of ITU-T Rec. {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SuccessRPA" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter reports a count of the successful RPA (RMC parameter
          adjustment) primitives. This parameter is defined as success_RPA in
          clause 7.7.23 of ITU-T Rec. {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SuccessTIGA" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter reports a count of the successful TIGA (transmitter
          initiated gain adjustment) primitives. This parameter is defined as
          success_TIGA in clause 7.7.24 of ITU-T Rec. {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.FAST.Line.{i}.Stats.Showtime." access="readOnly"
        minEntries="1" maxEntries="1" version="2.11">
      <description>
        This object contains FAST line statistics since the most recent
        showtime.

        Note: The Total 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 {{units}} as defined in ITU-T Rec.
          {{bibref|G.997.2}}. An errored second (ES) is declared if, during a
          1-second interval, there are one or more crc anomalies, or one or
          more los defects, or one or more lor defects, or one or more lpr
          primitives.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SeverelyErroredSecs" access="readOnly"
          activeNotify="canDeny">
        <description>
          Total number of severely errored {{units}} as defined in ITU-T Rec.
          {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LOSS" access="readOnly" activeNotify="canDeny">
        <description>
          Total number of loss of signal {{units}} (LOSS) as defined in ITU-T
          Rec. {{bibref|G.997.2}}. A LOSS is declared if, during a 1-second
          interval, there are one or more los defects.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LORS" access="readOnly" activeNotify="canDeny">
        <description>
          Total number of loss of RMC {{units}} (LORS) as defined in ITU-T Rec.
          {{bibref|G.997.2}}. A LORS is declared if, during a 1-second
          interval, there are one or more lor defects.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="UAS" access="readOnly" activeNotify="canDeny">
        <description>
          Total number of unavailable {{units}} (UAS) as defined in ITU-T Rec.
          {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RTXUC" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter reports a count of uncorrected DTU anomalies (rtx_uc).
          This parameter is defined in clause 7.8.5 of ITU-T Rec.
          {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="RTXTX" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter reports a count of retransmitted DTU anomalies
          (rtx_tx). This parameter is defined in clause 7.8.6 of ITU-T Rec.
          {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SuccessBSW" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter reports a count of the successful bit swap (BSW)
          primitives. This parameter is defined as success_BSW in clause 7.7.20
          of ITU-T Rec. {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SuccessSRA" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter reports a count of the successful autonomous SRA
          (seamless rate adaptation) primitives. This parameter is defined as
          success_SRA in clause 7.7.21 of ITU-T Rec. {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SuccessFRA" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter reports a count of the successful FRA (fast rate
          adaptation) primitives. This parameter is defined as success_FRA in
          clause 7.7.22 of ITU-T Rec. {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SuccessRPA" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter reports a count of the successful RPA (RMC parameter
          adjustment) primitives. This parameter is defined as success_RPA in
          clause 7.7.23 of ITU-T Rec. {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SuccessTIGA" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter reports a count of the successful TIGA (transmitter
          initiated gain adjustment) primitives. This parameter is defined as
          success_TIGA in clause 7.7.24 of ITU-T Rec. {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.FAST.Line.{i}.Stats.LastShowtime." access="readOnly"
        minEntries="1" maxEntries="1" version="2.11">
      <description>
        This object contains FAST line statistics since the second most recent
        showtime.

        Note: The Total 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 {{units}} as defined in ITU-T Rec.
          {{bibref|G.997.2}}. An errored second (ES) is declared if, during a
          1-second interval, there are one or more crc anomalies, or one or
          more los defects, or one or more lor defects, or one or more lpr
          primitives.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SeverelyErroredSecs" access="readOnly"
          activeNotify="canDeny">
        <description>
          Total number of severely errored {{units}} as defined in ITU-T Rec.
          {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LOSS" access="readOnly" activeNotify="canDeny">
        <description>
          Total number of loss of signal {{units}} (LOSS) as defined in ITU-T
          Rec. {{bibref|G.997.2}}. A LOSS is declared if, during a 1-second
          interval, there are one or more los defects.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LORS" access="readOnly" activeNotify="canDeny">
        <description>
          Total number of loss of RMC {{units}} (LORS) as defined in ITU-T Rec.
          {{bibref|G.997.2}}. A LORS is declared if, during a 1-second
          interval, there are one or more lor defects.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="UAS" access="readOnly" activeNotify="canDeny">
        <description>
          Total number of unavailable {{units}} (UAS) as defined in ITU-T Rec.
          {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RTXUC" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter reports a count of uncorrected DTU anomalies (rtx_uc).
          This parameter is defined in clause 7.8.5 of ITU-T Rec.
          {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="RTXTX" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter reports a count of retransmitted DTU anomalies
          (rtx_tx). This parameter is defined in clause 7.8.6 of ITU-T Rec.
          {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SuccessBSW" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter reports a count of the successful bit swap (BSW)
          primitives. This parameter is defined as success_BSW in clause 7.7.20
          of ITU-T Rec. {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SuccessSRA" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter reports a count of the successful autonomous SRA
          (seamless rate adaptation) primitives. This parameter is defined as
          success_SRA in clause 7.7.21 of ITU-T Rec. {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SuccessFRA" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter reports a count of the successful FRA (fast rate
          adaptation) primitives. This parameter is defined as success_FRA in
          clause 7.7.22 of ITU-T Rec. {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SuccessRPA" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter reports a count of the successful RPA (RMC parameter
          adjustment) primitives. This parameter is defined as success_RPA in
          clause 7.7.23 of ITU-T Rec. {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SuccessTIGA" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter reports a count of the successful TIGA (transmitter
          initiated gain adjustment) primitives. This parameter is defined as
          success_TIGA in clause 7.7.24 of ITU-T Rec. {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.FAST.Line.{i}.Stats.CurrentDay." access="readOnly"
        minEntries="1" maxEntries="1" version="2.11">
      <description>
        This object contains FAST line statistics accumulated during the
        current day.

        Note: The Total 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 {{units}} as defined in ITU-T Rec.
          {{bibref|G.997.2}}. An errored second (ES) is declared if, during a
          1-second interval, there are one or more crc anomalies, or one or
          more los defects, or one or more lor defects, or one or more lpr
          primitives.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SeverelyErroredSecs" access="readOnly"
          activeNotify="canDeny">
        <description>
          Total number of severely errored {{units}} as defined in ITU-T Rec.
          {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LOSS" access="readOnly" activeNotify="canDeny">
        <description>
          Total number of loss of signal {{units}} (LOSS) as defined in ITU-T
          Rec. {{bibref|G.997.2}}. A LOSS is declared if, during a 1-second
          interval, there are one or more los defects.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LORS" access="readOnly" activeNotify="canDeny">
        <description>
          Total number of loss of RMC {{units}} (LORS) as defined in ITU-T Rec.
          {{bibref|G.997.2}}. A LORS is declared if, during a 1-second
          interval, there are one or more lor defects.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="UAS" access="readOnly" activeNotify="canDeny">
        <description>
          Total number of unavailable {{units}} (UAS) as defined in ITU-T Rec.
          {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RTXUC" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter reports a count of uncorrected DTU anomalies (rtx_uc).
          This parameter is defined in clause 7.8.5 of ITU-T Rec.
          {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="RTXTX" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter reports a count of retransmitted DTU anomalies
          (rtx_tx). This parameter is defined in clause 7.8.6 of ITU-T Rec.
          {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SuccessBSW" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter reports a count of the successful bit swap (BSW)
          primitives. This parameter is defined as success_BSW in clause 7.7.20
          of ITU-T Rec. {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SuccessSRA" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter reports a count of the successful autonomous SRA
          (seamless rate adaptation) primitives. This parameter is defined as
          success_SRA in clause 7.7.21 of ITU-T Rec. {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SuccessFRA" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter reports a count of the successful FRA (fast rate
          adaptation) primitives. This parameter is defined as success_FRA in
          clause 7.7.22 of ITU-T Rec. {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SuccessRPA" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter reports a count of the successful RPA (RMC parameter
          adjustment) primitives. This parameter is defined as success_RPA in
          clause 7.7.23 of ITU-T Rec. {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SuccessTIGA" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter reports a count of the successful TIGA (transmitter
          initiated gain adjustment) primitives. This parameter is defined as
          success_TIGA in clause 7.7.24 of ITU-T Rec. {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.FAST.Line.{i}.Stats.QuarterHour." access="readOnly"
        minEntries="1" maxEntries="1" version="2.11">
      <description>
        This object contains FAST line statistics accumulated during the
        current quarter hour.

        Note: The Total 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 {{units}} as defined in ITU-T Rec.
          {{bibref|G.997.2}}. An errored second (ES) is declared if, during a
          1-second interval, there are one or more crc anomalies, or one or
          more los defects, or one or more lor defects, or one or more lpr
          primitives.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SeverelyErroredSecs" access="readOnly"
          activeNotify="canDeny">
        <description>
          Total number of severely errored {{units}} as defined in ITU-T Rec.
          {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LOSS" access="readOnly" activeNotify="canDeny">
        <description>
          Total number of loss of signal {{units}} (LOSS) as defined in ITU-T
          Rec. {{bibref|G.997.2}}. A LOSS is declared if, during a 1-second
          interval, there are one or more los defects.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LORS" access="readOnly" activeNotify="canDeny">
        <description>
          Total number of loss of RMC {{units}} (LORS) as defined in ITU-T Rec.
          {{bibref|G.997.2}}. A LORS is declared if, during a 1-second
          interval, there are one or more lor defects.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="UAS" access="readOnly" activeNotify="canDeny">
        <description>
          Total number of unavailable {{units}} (UAS) as defined in ITU-T Rec.
          {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RTXUC" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter reports a count of uncorrected DTU anomalies (rtx_uc).
          This parameter is defined in clause 7.8.5 of ITU-T Rec.
          {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="RTXTX" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter reports a count of retransmitted DTU anomalies
          (rtx_tx). This parameter is defined in clause 7.8.6 of ITU-T Rec.
          {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SuccessBSW" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter reports a count of the successful bit swap (BSW)
          primitives. This parameter is defined as success_BSW in clause 7.7.20
          of ITU-T Rec. {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SuccessSRA" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter reports a count of the successful autonomous SRA
          (seamless rate adaptation) primitives. This parameter is defined as
          success_SRA in clause 7.7.21 of ITU-T Rec. {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SuccessFRA" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter reports a count of the successful FRA (fast rate
          adaptation) primitives. This parameter is defined as success_FRA in
          clause 7.7.22 of ITU-T Rec. {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SuccessRPA" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter reports a count of the successful RPA (RMC parameter
          adjustment) primitives. This parameter is defined as success_RPA in
          clause 7.7.23 of ITU-T Rec. {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SuccessTIGA" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter reports a count of the successful TIGA (transmitter
          initiated gain adjustment) primitives. This parameter is defined as
          success_TIGA in clause 7.7.24 of ITU-T Rec. {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

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

      <parameter name="SNRGds" access="readOnly" activeNotify="canDeny">
        <description>
          Reports the number of sub-carriers in any one sub-carrier group used
          to represent the downstream SNR(f) values. Valid values are 1, 2, 4,
          and 8.

          Note: In ITU-T G.9701-2014, the only valid value is G = 1. See clause
          7.10.8.2 ITU-T Recommendation {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SNRGus" access="readOnly" activeNotify="canDeny">
        <description>
          Reports the number of sub-carriers in any one sub-carrier group used
          to represent the upstream SNR(f) values. Valid values are 1, 2, 4,
          and 8.

          Note: In ITU-T G.9701-2014, the only valid value is G = 1. See clause
          7.10.8.5 ITU-T Recommendation {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SNRpsds" access="readOnly" activeNotify="canDeny">
        <description>
          {{list}} Reports the downstream SNR(f) values. A special value
          indicates that no measurement could be done for this sub-carrier
          group because it is out of the downstream MEDLEY set or its transmit
          power is zero. The number of elements will depend on the value of
          SNRGds. Interpretation of the values is as defined in clause
          11.4.1.2.2.of ITU-T Rec. {{bibref|G.9701}}.

          Note: See clause 7.10.8.3 of ITU-T Recommendation {{bibref|G.997.2}}.
        </description>
        <syntax>
          <list>
            <size maxLength="2047"/>
          </list>
          <int/>
        </syntax>
      </parameter>

      <parameter name="SNRpsus" access="readOnly" activeNotify="canDeny">
        <description>
          {{list}} Reports the upstream SNR(f) values. A special value
          indicates that no measurement could be done for this sub-carrier
          group because it is out of the downstream MEDLEY set or its transmit
          power is zero. The number of elements will depend on the value of
          SNRGds. Interpretation of the values is as defined in clause
          11.4.1.2.2.of ITU-T Rec. {{bibref|G.9701}}.

          Note: See clause 7.10.8.6 of ITU-T Recommendation {{bibref|G.997.2}}.
        </description>
        <syntax>
          <list>
            <size maxLength="2047"/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="SNRMTds" access="readOnly" activeNotify="canDeny">
        <description>
          Reports the number of symbols used to measure the downstream SNR(f)
          values. The valid values 0..65535.

          Note: See clause 7.10.8.1 of ITU-T Recommendation {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SNRMTus" access="readOnly" activeNotify="canDeny">
        <description>
          Reports the number of symbols used to measure the upstream SNR(f)
          values. The valid values 0..65535.

          Note: See clause 7.10.8.4 of ITU-T Recommendation {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ACTINP" access="readOnly" activeNotify="canDeny">
        <description>
          Reports the actual INP against SHINE as defined in clause
          11.4.1.1.7/{{bibref|G.9701}}. A special value indicates an actual INP
          against SHINE of 2047 symbols or higher. The valid values are 0..2046
          and 2047 is the special value.

          Note: See ITU-T Recommendation {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="NFEC" access="readOnly" activeNotify="canDeny">
        <description>
          Reports the DTU FEC codeword length (expressed in 1 byte unit) as
          defined in clause 9.3/{{bibref|G.9701}}. The valid range is 32..255.

          Note: See clause 7.11.4.1 ITU-T Recommendation {{bibref|G.997.2}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="RFEC" access="readOnly" activeNotify="canDeny">
        <description>
          Reports the DTU FEC codeword redundancy as defined in clause
          9.3/{{bibref|G.9701}}.

          Note: See ITU-T Recommendation {{bibref|G.997.2}}.
        </description>
        <syntax>
          <int/>
        </syntax>
      </parameter>

      <parameter name="UpstreamCurrRate" access="readOnly"
          activeNotify="canDeny">
        <description>
          Reports the current physical layer aggregate data rate (expressed in
          {{units}}) of the upstream FAST as defined in clause
          11.4.1.1.1/{{bibref|G.9701}}.

          The current physical layer aggregate data rate (expressed in Kbps) of
          the upstream FAST connection. The valid values are 0..4294967295(0 to
          232-1 kbit/s).
        </description>
        <syntax>
          <unsignedInt>
            <units value="Kbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="DownstreamCurrRate" access="readOnly"
          activeNotify="canDeny">
        <description>
          Reports the current physical layer aggregate data rate (expressed in
          {{units}}) of the upstream FAST as defined in clause
          11.4.1.1.1/{{bibref|G.9701}}.

          The current physical layer aggregate data rate (expressed in Kbps) of
          the downstream FAST connection. The valid values are 0..4294967295(0
          to 232-1 kbit/s).
        </description>
        <syntax>
          <unsignedInt>
            <units value="Kbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ACTINPREIN" access="readOnly" activeNotify="canDeny">
        <description>
          Reports the actual INP against REIN as defined in clause
          11.4.1.1.8/{{bibref|G.9701}}. A special value indicates an actual INP
          against REIN of 63 symbols or higher. The valid range is 0..62
          symbols, and 63 is the special value.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Optical." access="readOnly" minEntries="1"
        maxEntries="1" version="2.4">
      <description>
        This object models a generic optical interface. It defines an
        {{object|Interface}} object that models a layer 1 optical interface
        that is capable of transporting Ethernet packets. For historical
        reasons, the data model definition is based on parts of
        {{bibref|G.988}}. However, it is not intended to model anything
        specific to IEEE PON or ITU-T PON technologies.

        Note that this object is not intended to model the optical transceiver
        either.
      </description>

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

    <object name="Device.Optical.Interface.{i}."
        numEntriesParameter="InterfaceNumberOfEntries" minEntries="0"
        maxEntries="unbounded" dmr:fixedObject="true" version="2.4">
      <description>
        Optical interface table (a stackable interface object as described in
        {{bibref|TR-181i2|Section 4.2}}). This table models physical optical
        interfaces.
      </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 optical interface.

          This parameter is based on ''ifAdminStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status">
        <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}}.

          Because the interface includes layer 1, the {{enum|LowerLayerDown}}
          value SHOULD never be used.
        </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" version="2.4">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name">
        <description>
          The textual name of the interface as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" 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">
        <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="readWrite" version="2.18">
        <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="SFPReferenceList" access="readOnly" version="2.19">
        <description>
          Small-form Factor Pluggable (SFP) entries associated with this
          interface.
        </description>
        <syntax>
          <list/>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="##.SFPs.SFPCage."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="OpticalSignalLevel" access="readOnly">
        <description>
          Current measurement of total downstream optical signal level.

          {{datatype|expand}}

          Valid values are -65.536 dBm (coded as -65536), to 65.534 dBm (coded
          as 65534) in 0.002 dB increments.

          This parameter is based on ''Optical signal level'' from
          {{bibref|G.988|Section 9.2.1}}.
        </description>
        <syntax>
          <dataType ref="Dbm1000">
            <range minInclusive="-65536" maxInclusive="65534" step="2"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="LowerOpticalThreshold" access="readOnly"
          status="deleted">
        <description>
          Optical level that is used to declare the downstream low received
          optical power alarm.

          {{datatype|expand}}

          Valid values are -127.5 dBm (coded as -127500) to 0 dBm (coded as 0)
          in 0.5 dB increments. The value -127500 indicates the device's
          internal policy.

          This parameter is based on ''Lower optical threshold'' from
          {{bibref|G.988|section 9.2.1}}.

          {{deprecated|2.15|because it is not intended for the device to raise
          an optical power alarm.}}

          {{obsoleted|2.17}}

          {{deleted|2.18}}
        </description>
        <syntax>
          <dataType ref="Dbm1000">
            <range minInclusive="-127000" maxInclusive="0" step="500"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UpperOpticalThreshold" access="readOnly"
          status="deleted">
        <description>
          Optical level that is used to declare the downstream high received
          optical power alarm.

          {{datatype|expand}}

          Valid values are -127.5 dBm (coded as -127500) to 0 dBm (coded as 0)
          in 0.5 dB increments. The value -127500 indicates the device's
          internal policy.

          This parameter is based on ''Upper optical threshold'' from
          {{bibref|G.988|section 9.2.1}}.

          {{deprecated|2.15|because it is not intended for the device to raise
          an optical power alarm.}}

          {{obsoleted|2.17}}

          {{deleted|2.18}}
        </description>
        <syntax>
          <dataType ref="Dbm1000">
            <range minInclusive="-127000" maxInclusive="0" step="500"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="TransmitOpticalLevel" access="readOnly">
        <description>
          Current measurement of mean optical launch power.

          {{datatype|expand}}

          Valid values are -65.536 dBm (coded as -65536), to 65.534 dBm (coded
          as 65534) in 0.002 dB increments.

          This parameter is based on ''Transmit optical level'' from
          {{bibref|G.988|section 9.2.1}}.
        </description>
        <syntax>
          <dataType ref="Dbm1000">
            <range minInclusive="-65536" maxInclusive="65534" step="2"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="LowerTransmitPowerThreshold" access="readOnly"
          status="deleted">
        <description>
          Minimum mean optical launch power that is used to declare the low
          transmit optical power alarm.

          {{datatype|expand}}

          Valid values are -63.5 dBm (coded as -63500) to +63.5 dBm (coded as
          63500) in 0.5 dB increments. The value -63500 indicates the device's
          internal policy.

          This parameter is based on ''Lower transmit power threshold'' from
          {{bibref|G.988|section 9.2.1}}.

          {{deprecated|2.15|because it is not intended for the device to raise
          an optical power alarm.}}

          {{obsoleted|2.17}}

          {{deleted|2.18}}
        </description>
        <syntax>
          <dataType ref="Dbm1000">
            <range minInclusive="-63500" maxInclusive="63500" step="500"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UpperTransmitPowerThreshold" access="readOnly"
          status="deleted">
        <description>
          Maximum mean optical launch power that is used to declare the high
          transmit optical power alarm.

          {{datatype|expand}}

          Valid values are -63.5 dBm (coded as -63500) to +63.5 dBm (coded as
          63500) in 0.5 dB increments. The value -63500 indicates the device's
          internal policy.

          This parameter is based on ''Upper transmit power threshold'' from
          {{bibref|G.988|section 9.2.1}}.

          {{deprecated|2.15|because it is not intended for the device to raise
          an optical power alarm.}}

          {{obsoleted|2.17}}

          {{deleted|2.18}}
        </description>
        <syntax>
          <dataType ref="Dbm1000">
            <range minInclusive="-63500" maxInclusive="63500" step="500"/>
          </dataType>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Optical.Interface.{i}.Stats." minEntries="1"
        maxEntries="1" version="2.4">
      <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="Reset" access="readWrite" version="2.18">
        <description>
          Set this to {{true}} to reset all this object's statistics counters
          to zero.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BytesSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface,
          including framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface, including
          framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} that could not be transmitted
          because of errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} that contained errors
          preventing them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Cellular." access="readOnly" minEntries="1"
        maxEntries="1" version="2.8">
      <description>
        This object models cellular interfaces and access points.
      </description>

      <parameter name="RoamingEnabled" access="readWrite">
        <description>
          Enables or disables roaming.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="RoamingStatus" access="readOnly">
        <description>
          Current roaming status.
        </description>
        <syntax>
          <string>
            <enumeration value="Home"/>
            <enumeration value="Roaming"/>
          </string>
        </syntax>
      </parameter>

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

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

    <object name="Device.Cellular.Interface.{i}."
        numEntriesParameter="InterfaceNumberOfEntries" minEntries="0"
        maxEntries="unbounded" dmr:fixedObject="true" version="2.8">
      <description>
        Cellular interface table (a stackable interface object as described in
        {{bibref|TR-181i2|Section 4.2}}). Each instance of this object models a
        cellular modem with a single radio and can reference multiple
        {{object|.TrustedElements.SIM.}}.
      </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">
        <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}}.

          Because the interface includes layer 1, the {{enum|LowerLayerDown}}
          value SHOULD never be used.
        </description>
        <syntax>
          <string>
            <enumeration value="Up">
              <description>
                Corresponds to {{enum|GPRS|CurrentAccessTechnology}},
                {{enum|UMTS|CurrentAccessTechnology}},
                {{enum|LTE|CurrentAccessTechnology}} etc ''ATTACHED'' status
              </description>
            </enumeration>
            <enumeration value="Down"/>
            <enumeration value="Unknown"/>
            <enumeration value="Dormant"/>
            <enumeration value="NotPresent">
              <description>
                Corresponds to {{enum|GPRS|CurrentAccessTechnology}},
                {{enum|UMTS|CurrentAccessTechnology}},
                {{enum|LTE|CurrentAccessTechnology}} etc ''DETACHED'' status
              </description>
            </enumeration>
            <enumeration value="LowerLayerDown"/>
            <enumeration value="Error" optional="true"/>
          </string>
        </syntax>
      </parameter>

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

      <parameter name="Name">
        <description>
          The textual name of the interface as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" 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">
        <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="IMEI" access="readOnly">
        <description>
          International Mobile Station Equipment Identity number, represented
          as a 15 digit string (digits 0-9).
        </description>
        <syntax>
          <string>
            <size minLength="15" maxLength="15"/>
            <pattern value="[0-9]{15,15}"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SupportedAccessTechnologies" access="readOnly">
        <description>
          Access technologies supported by the interface.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="GPRS">
              <description>GSM with GPRS</description>
            </enumeration>
            <enumeration value="EDGE">
              <description>GSM with EDGE</description>
            </enumeration>
            <enumeration value="UMTS"/>
            <enumeration value="UMTSHSPA">
              <description>
                UMTS with High Speed Packet Access (HSPA {{bibref|3GPP-HSPA}})
              </description>
            </enumeration>
            <enumeration value="CDMA2000OneX"/>
            <enumeration value="CDMA2000HRPD"/>
            <enumeration value="LTE"/>
            <enumeration value="NR" version="2.14">
              <description>5G New Radio</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="PreferredAccessTechnology" access="readWrite">
        <description>
          Preferred access technology.
        </description>
        <syntax>
          <string>
            <enumerationRef targetParam="SupportedAccessTechnologies"
                nullValue="Auto"/>
          </string>
          <default type="factory" value="Auto"/>
        </syntax>
      </parameter>

      <parameter name="CurrentAccessTechnology" access="readOnly">
        <description>
          Access technology that is currently in use.
        </description>
        <syntax>
          <string>
            <enumerationRef targetParam="SupportedAccessTechnologies"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="AvailableNetworks" access="readOnly"
          activeNotify="canDeny">
        <description>
          List of available networks.
        </description>
        <syntax>
          <list/>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="NetworkRequested" access="readWrite">
        <description>
          Name of the network which will be used, or {{empty}} if the network
          is selected automatically.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
          <default type="factory" value=""/>
        </syntax>
      </parameter>

      <parameter name="NetworkInUse" access="readOnly">
        <description>
          The value is {{empty}} if no network is found, or if the network
          specified in {{param|NetworkRequested}} is not found.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
            <enumerationRef targetParam="AvailableNetworks" nullValue=""/>
          </string>
        </syntax>
      </parameter>

      <parameter name="RSSI" access="readOnly" activeNotify="canDeny">
        <description>
          The received signal strength in {{units}}. The allowed values depend
          on {{param|CurrentAccessTechnology}}:

          * For {{enum|GPRS|SupportedAccessTechnologies}},
            {{enum|EDGE|SupportedAccessTechnologies}} the range is -111
            {{units}} to -49 {{units}}

          * For {{enum|UMTS|SupportedAccessTechnologies}},
            {{enum|UMTSHSPA|SupportedAccessTechnologies}} the range is -117
            {{units}} to -54 {{units}}

          * For {{enum|LTE|SupportedAccessTechnologies}},
            {{enum|NR|SupportedAccessTechnologies}} the range is -117 {{units}}
            to -25 {{units}}

          Note: An undetectable signal is indicated by the appropriate lower
          limit, e.g. -117 {{units}} for LTE.
        </description>
        <syntax>
          <int>
            <units value="dBm"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="RSRP" access="readOnly" activeNotify="canDeny"
          version="2.14">
        <description>
          The Reference Signal Received Power in {{units}} for
          {{enum|LTE|SupportedAccessTechnologies}},
          {{enum|NR|SupportedAccessTechnologies}} values of
          {{param|CurrentAccessTechnology}}:

          * The valid range of RSRP values from worst to best is -140 {{units}}
            to -44 {{units}}

          * Set to {{maxval}} if RSRP is not supported by the current access
            technology
        </description>
        <syntax>
          <int>
            <units value="dBm"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="RSRQ" access="readOnly" activeNotify="canDeny"
          version="2.14">
        <description>
          The Reference Signal Received Quality in {{units}} for
          {{enum|LTE|SupportedAccessTechnologies}},
          {{enum|NR|SupportedAccessTechnologies}} values of
          {{param|CurrentAccessTechnology}}:

          * RSRQ is calculated using RSSI and RSRP values using RSRQ =
            (N*RSRP)/RSSI where N is the number of resource blocks (bandwidth).

          * The valid range of RSRQ values from worst to best is -20 {{units}}
            to -3 {{units}}.

          * Set to {{maxval}} if RSRQ is not supported by the current access
            technology.
        </description>
        <syntax>
          <int>
            <units value="dBm"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="UpstreamMaxBitRate" access="readOnly">
        <description>
          The current maximum attainable data rate upstream (expressed in
          {{units}}).
        </description>
        <syntax>
          <unsignedInt>
            <units value="Kbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="DownstreamMaxBitRate" access="readOnly">
        <description>
          The current maximum attainable data rate downstream (expressed in
          {{units}}).
        </description>
        <syntax>
          <unsignedInt>
            <units value="Kbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SIMReferenceList" access="readWrite" version="2.19">
        <description>
          Each list item references a SIM with which the interface is
          associated.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetParent=".TrustedElements.SIM."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Cellular.Interface.{i}.Stats." minEntries="1"
        maxEntries="1" version="2.8">
      <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="Reset" access="readWrite" version="2.19">
        <description>
          Set this to {{true}} to reset all this object's statistics counters
          to zero.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BytesSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface,
          including framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface, including
          framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} that could not be transmitted
          because of errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} that contained errors
          preventing them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="ErrorsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="DiscardPacketsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were not addressed to a multicast or broadcast
          address at this layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a multicast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a broadcast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnknownProtoPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received via the interface which were
          discarded because of an unknown or unsupported protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Cellular.Interface.{i}.USIM." access="readOnly"
        minEntries="1" maxEntries="1" version="2.8" status="deprecated">
      <description>
        USIM (Universal Subscriber Identity Module or SIM card) parameters for
        the interface.

        {{deprecated|2.19|because moved to {{object|.TrustedElements.SIM}}}}
      </description>

      <parameter name="Status" access="readOnly">
        <description>
          The current status of the USIM card.
        </description>
        <syntax>
          <string>
            <enumeration value="None">
              <description>No card available</description>
            </enumeration>
            <enumeration value="Available">
              <description>Card is available but not verified</description>
            </enumeration>
            <enumeration value="Valid">
              <description>
                Card can be used; either valid PIN was entered, or PIN check is
                deactivated
              </description>
            </enumeration>
            <enumeration value="Blocked">
              <description>
                USIM is blocked because the maximum number of invalid PIN
                entries was exceeded
              </description>
            </enumeration>
            <enumeration value="Error" optional="true">
              <description>An error was detected with the card</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="IMSI" access="readOnly">
        <description>
          International Mobile Subscriber Identity represented as a string with
          either 14 or 15 digits (digits 0-9). The first 3 digits are the
          mobile country code (MCC), which are followed by the mobile network
          code (MNC), either 2 digits (European standard) or 3 digits (North
          American standard), followed by the mobile subscription
          identification number (MSIN).
        </description>
        <syntax>
          <string>
            <size minLength="14" maxLength="15"/>
            <pattern value="[0-9]{14,15}"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ICCID" access="readOnly">
        <description>
          Integrated Circuit Card Identifier represented as a string of up to
          20 digits (digits 0-9). The number is composed of the following
          parts:

          * Major industry identifier (MII), 2 fixed digits, 89 for
            telecommunication purposes.

          * Country code, 1–3 digits, as defined by ITU-T recommendation
            {{bibref|ITU-E.164}}.

          * identifier, 1–4 digits.

          * Individual account identification number. Its length is variable,
            but every number under one IIN will have the same length.

          * Single check digit calculated from the other digits using the Luhn
            algorithm.

          For cards using an ICCID according to {{bibref|ITU-E.118}} the
          maximum length is 19 Digits, for GSM cards 20 digits.
        </description>
        <syntax>
          <string>
            <size minLength="6" maxLength="20"/>
            <pattern value="[0-9]{6,20}"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="MSISDN" access="readOnly">
        <description>
          Mobile Subscriber Integrated Service Digital Network Number, a number
          uniquely identifying a subscription in a GSM, UMTS, or LTE mobile
          network. {{bibref|ITU-E.164}}
        </description>
        <syntax>
          <string>
            <size minLength="14" maxLength="15"/>
            <pattern value="[0-9]{14,15}"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="PINCheck" access="readWrite">
        <description>
          Controls the PIN verification of the USIM card.
        </description>
        <syntax>
          <string>
            <enumeration value="OnNetworkAccess">
              <description>
                Check the PIN with each access to a new network
              </description>
            </enumeration>
            <enumeration value="Reboot">
              <description>
                Check the PIN with first access after (re)boot
              </description>
            </enumeration>
            <enumeration value="Off">
              <description>Disable the PIN check</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="PIN" access="readWrite">
        <description>
          Allows the Controller to change the USIM PIN used for SIM card
          activation.
        </description>
        <syntax secured="true">
          <string>
            <size maxLength="4"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Cellular.Interface.{i}.SMS." version="2.19">
      <description>
        The object models SMS (Short Message Service) features.
      </description>

      <parameter name="StorageNumberOfEntries">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MessageNumberOfEntries">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Cellular.Interface.{i}.SMS.Storage.{i}."
        numEntriesParameter="StorageNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.19">
      <description>
        Represents a SMS storage location. Each instance of this object
        corresponds to a distinct SMS storage area. Multiple instances of this
        object may exist, each representing a different storage type (e.g., SM
        SIM card, ME device memory).
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="Location" access="readWrite">
        <description>
          Specifies the storage location e.g. SM SIM card, ME device memory.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Capacity" access="readOnly">
        <description>
          The maximum number of SMS messages in
          {{object|Device.Cellular.Interface.{i}.SMS.Message}} that can be
          stored in Storage.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="StorageAvailable" access="readOnly">
        <description>
          Indicates whether the SMS Storage is available to receive new
          messages. {{true}} means that there is storage still available;
          {{false}} means that the storage is full.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="AvailableCapacity" access="readOnly">
        <description>
          The number of SMS messages in
          {{object|Device.Cellular.Interface.{i}.SMS.Message}} that the Storage
          entity has room to store, which can not exceed {{param|Capacity}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Cellular.Interface.{i}.SMS.Incoming." version="2.19">
      <description>
        This object models incoming SMS configuration.
      </description>

      <parameter name="StorageRef" access="readWrite">
        <description>
          Specifies the memory path where the messages are stored.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong"
                targetParent="Device.Cellular.Interface.{i}.SMS.Storage."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="CapacityLimit" access="readWrite">
        <description>
          Maximum number of incoming SMS messages to be stored. If the number
          of incoming messages in
          {{object|Device.Cellular.Interface.{i}.SMS.Message}} exceeds
          CapacityLimit, the oldest incoming messages will be removed
          automatically to prevent storage overfilling. -1 disables automatic
          messages removal.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
          </int>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Cellular.Interface.{i}.SMS.Outgoing." version="2.19">
      <description>
        This object models outgoing SMS configuration.
      </description>

      <parameter name="StorageRef" access="readWrite">
        <description>
          Specifies the memory path where the messages are stored.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong"
                targetParent="Device.Cellular.Interface.{i}.SMS.Storage."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="CapacityLimit" access="readWrite">
        <description>
          Maximum number of outgoing SMS messages to be stored. If the number
          of outgoing messages in
          {{object|Device.Cellular.Interface.{i}.SMS.Message}} exceeds
          CapacityLimit, the oldest outgoing messages will be removed
          automatically to prevent storage overfilling. -1 disables automatic
          messages removal.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
          </int>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Cellular.Interface.{i}.SMS.Message.{i}."
        access="readWrite" minEntries="0" maxEntries="unbounded"
        numEntriesParameter="MessageNumberOfEntries" version="2.19">
      <description>
        This object models individual SMS messages, including both received and
        sent entries.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="Sender">
        <description>
          Phone number of the SMS sender.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="Receiver">
        <description>
          Phone number of the SMS receiver.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="TimeStamp">
        <description>
          Indicates the time an incoming SMS was received (when
          {{param|Status}} is {{enum|Received|Status}}) or when an outgoing SMS
          was sent (when {{param|Status}} is {{enum|Sent|Status}}).
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="Text">
        <description>
          Text of the SMS message.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="StorageRef">
        <description>
          Specifies the memory path where the messages are stored.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong"
                targetParent="Device.Cellular.Interface.{i}.SMS.Storage."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Status">
        <description>
          Indicates the status of the message.
        </description>
        <syntax>
          <string>
            <enumeration value="ReceivedRead">
              <description>
                The incoming message has been received, stored successfully,
                and has been marked as read.
              </description>
            </enumeration>
            <enumeration value="Received">
              <description>
                The incoming message has been received and stored successfully.
              </description>
            </enumeration>
            <enumeration value="Sent">
              <description>
                The outgoing message has been stored and sent successfully.
              </description>
            </enumeration>
            <enumeration value="Stored">
              <description>
                The outgoing message has been created, but has not been sent
                yet.
              </description>
            </enumeration>
            <enumeration value="Unknown">
              <description>Message status processing error.</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="Type">
        <description>
          Indicates the type of the message.
        </description>
        <syntax>
          <string>
            <enumeration value="PointToPoint">
              <description>SMS message with a single receiver.</description>
            </enumeration>
            <enumeration value="Broadcast">
              <description>SMS message with multiple receivers.</description>
            </enumeration>
            <enumeration value="Acknowledgement">
              <description>Receipt of a SMS message.</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Cellular.AccessPoint.{i}." access="readWrite"
        numEntriesParameter="AccessPointNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded"
        version="2.8">
      <description>
        Cellular Access Point table. Each entry is identified by an
        {{param|APN}} (Access Point Name) that identifies a gateway between the
        mobile network and another computer network.

        Note: Device 2.19 grouped the APN and Interface keys into one combined
        key.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="APN"/>
        <parameter ref="Interface"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the Access Point.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

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

      <parameter name="APN" access="readWrite">
        <description>
          Access Point Name.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Username" access="readWrite">
        <description>
          Username used to authenticate the CPE when making a connection to the
          Access Point.
        </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
          Access Point.
        </description>
        <syntax secured="true">
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Proxy" access="readWrite">
        <description>
          Proxy server IP address.
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
        </syntax>
      </parameter>

      <parameter name="ProxyPort" access="readWrite">
        <description>
          Proxy server port.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite">
        <description>
          Reference to the interface with which the access point is associated.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="#.Interface."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="IPVersion" access="readWrite" version="2.19">
        <description>
          Specifies the IP protocol version, following the definitions in
          {{bibref|IANA-ipversionnumbers}}. Valid values are: {{range}}.
        </description>
        <syntax>
          <int>
            <range minInclusive="4" maxInclusive="4">
              <description>
                IPv4
              </description>
            </range>
            <range minInclusive="6" maxInclusive="6">
              <description>
                IPv6
              </description>
            </range>
            <range minInclusive="-1" maxInclusive="-1">
              <description>
                No specific IP version is required
              </description>
            </range>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="Type" access="readWrite" version="2.19">
        <description>
          This parameter specifies the type of APN being used. Common values
          are "default", "mms", "ims", "hipri", ...

          The specific values supported may vary depending on the network
          operator.

          If the APN type is not applicable, this parameter may be {{empty}}.
        </description>
        <syntax>
          <list/>
          <string/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.TrustedElements." version="2.19">
      <description>
        This object models Trusted Elements, specialized components in home
        gateways that create secure environments for sensitive data,
        cryptographic keys, and trusted applications. Essential for securing
        SIM/eSIM data, managing IoT devices, and encrypting network traffic,
        Trusted Elements protect home networks by preventing unauthorized
        access and ensuring data integrity.
      </description>

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

    <object name="Device.TrustedElements.SIM.{i}."
        numEntriesParameter="SIMNumberOfEntries" maxEntries="unbounded"
        version="2.19">
      <description>
        This object models SIM (Subscriber Identity Module) parameters for the
        interface, including support for eSIM (embedded SIM) functionality.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="Status" access="readWrite">
        <description>
          The current status of the SIM.
        </description>
        <syntax>
          <string>
            <enumeration value="None">
              <description>No card available</description>
            </enumeration>
            <enumeration value="Available">
              <description>Card is available but not verified</description>
            </enumeration>
            <enumeration value="Valid">
              <description>
                Card can be used; either valid PIN was entered, or PIN check is
                deactivated
              </description>
            </enumeration>
            <enumeration value="Blocked">
              <description>
                SIM is blocked because the maximum number of invalid PIN
                entries was exceeded
              </description>
            </enumeration>
            <enumeration value="Error" optional="true">
              <description>An error was detected with the card</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="IMSI">
        <description>
          International Mobile Subscriber Identity represented as a string with
          either 14 or 15 digits (digits 0-9). The first 3 digits are the
          mobile country code (MCC), which are followed by the mobile network
          code (MNC), either 2 digits (European standard) or 3 digits (North
          American standard), followed by the mobile subscription
          identification number (MSIN).
        </description>
        <syntax>
          <string>
            <size minLength="14" maxLength="15"/>
            <pattern value="[0-9]{14,15}"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ICCID">
        <description>
          Integrated Circuit Card Identifier represented as a string of up to
          20 digits (digits 0-9). The number is composed of the following
          parts:

          * Major industry identifier (MII), 2 fixed digits, 89 for
            telecommunication purposes.

          * Country code, 1–3 digits, as defined by ITU-T recommendation
            {{bibref|ITU-E.164}}.

          * identifier, 1–4 digits.

          * Individual account identification number. Its length is variable,
            but every number under one IIN will have the same length.

          * Single check digit calculated from the other digits using the Luhn
            algorithm.

          For cards using an ICCID according to {{bibref|ITU-E.118}} the
          maximum length is 19 Digits, for GSM cards 20 digits.
        </description>
        <syntax>
          <string>
            <size minLength="6" maxLength="20"/>
            <pattern value="[0-9]{6,20}"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="MSISDN">
        <description>
          Mobile Subscriber Integrated Service Digital Network Number, a number
          uniquely identifying a subscription in a GSM, UMTS, or LTE mobile
          network. {{bibref|ITU-E.164}}
        </description>
        <syntax>
          <string>
            <size minLength="14" maxLength="15"/>
            <pattern value="[0-9]{14,15}"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SMSC" access="readWrite">
        <description>
          The SMSC (SMS Center address) is part of the mobile network
          provider's configuration and is included on the SIM card or in the
          network provisioning package when the phone is initialized.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="EID">
        <description>
          Reports the unique identifier for the eUICC (Embedded Universal
          Integrated Circuit Card), which is a built-in SIM that can store
          multiple carrier profiles and be updated remotely.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

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

      <parameter name="ESIMProfileAddStatus">
        <description>
          Reports the operational status of the last network initiated Profile
          Add attempt for the embedded SIM (eSIM). The ESIM prefix indicates
          that this parameter is related to eSIM functionality.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="ESIMClassEnabledProfile">
        <description>
          References the currently activated {{object|Profile.}}.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="Profile." targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ESIMTestMode" access="readOnly">
        <description>
          Allows the cellular network to enable or disable the Test profile.
          When set to {{true}}, any currently active profile is disabled, and
          the {{param|ESIMClassEnabledProfile}} is ignored. When set to
          {{false}}, the previously active profile is re-enabled.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Type">
        <description>
          The current type of the SIM card.
        </description>
        <syntax>
          <string>
            <enumeration value="None">
              <description>No card available</description>
            </enumeration>
            <enumeration value="USIM">
              <description>Traditional SIM</description>
            </enumeration>
            <enumeration value="eSIM">
              <description>eSIM</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="GID1">
        <description>
          A hexadecimal identifier used to differentiate between different SIM
          card tariffs or derive APNs. For more details, refer to
          {{bibref|3GPP-TS.31.102}}.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="Usage">
        <description>
          Indicates the usage of the SIM instance.
        </description>
        <syntax>
          <string>
            <enumeration value="UICC"/>
            <enumeration value="DRM"/>
            <enumeration value="WWC"/>
            <enumeration value="CA"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="PINCheck" access="readWrite">
        <description>
          Controls the PIN verification of the USIM card.
        </description>
        <syntax>
          <string>
            <enumeration value="OnNetworkAccess">
              <description>
                Check the PIN with each access to a new network
              </description>
            </enumeration>
            <enumeration value="Reboot">
              <description>
                Check the PIN with first access after (re)boot
              </description>
            </enumeration>
            <enumeration value="Off">
              <description>Disable the PIN check</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="PIN" access="readWrite">
        <description>
          Allows the Controller to change the USIM PIN used for SIM card
          activation.
        </description>
        <syntax secured="true">
          <string>
            <size maxLength="4"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ProtectionScheme">
        <description>
          Protection Scheme Field—This field is a 4-bit value ranging 0–15,
          which identifies the protection scheme used to generate the SUCI. The
          following values are currently defined: - Null Scheme—0x00 - Profile
          &lt;A&gt;—0x1 - Profile &lt;B&gt;—0x2 - Other Values (3–15)—Reserved
          for future use
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="15"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="HomeNetworkPublicKeyID">
        <description>
          Home Network Public Key ID Field—This field is an 8-bit value ranging
          0–255, which identifies the public key provisioned by the Home Public
          Land Mobile Network (HPLMN) and used for SUPI protection. When the
          Null Scheme is used, this field is set to 0.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RoutingIndicator">
        <description>
          Routing Indicator Field—This field is a numerical value consisting of
          1–4 decimal digits. It's assigned by the home network operator and
          securely provisioned within the SIM/eSIM profile.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="9999"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.TrustedElements.SIM.{i}.Profile.{i}."
        numEntriesParameter="ProfileNumberOfEntries" maxEntries="unbounded"
        version="2.19">
      <description>
        Profile table for SIM.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="Name">
        <description>
          Indicates the profile name.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="IMSI">
        <description>
          International Mobile Subscriber Identity represented as a string with
          either 14 or 15 digits (digits 0-9). The first 3 digits are the
          mobile country code (MCC), which are followed by the mobile network
          code (MNC), either 2 digits (European standard) or 3 digits (North
          American standard), followed by the mobile subscription
          identification number (MSIN).
        </description>
        <syntax>
          <string>
            <size minLength="14" maxLength="15"/>
            <pattern value="[0-9]{14,15}"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ICCID">
        <description>
          Indicates the profile ICCID.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="State">
        <description>
          Indicates the profile state.
        </description>
        <syntax>
          <string>
            <enumeration value="Active"/>
            <enumeration value="Inactive"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Class">
        <description>
          Indicates the profile class.
        </description>
        <syntax>
          <string>
            <enumeration value="Provisioning"/>
            <enumeration value="Test"/>
            <enumeration value="Operational"/>
            <enumeration value="Unknown"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="GID1">
        <description>
          Differentiate e.g. different tariffs of SIM card, derive APNs etc.
          (as ASCII Hex dump)
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>
    </object>

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

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

    <object name="Device.ATM.Link.{i}." access="readWrite"
        numEntriesParameter="LinkNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.0">
      <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 interface.

          This parameter is based on ''ifAdminStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Status">
        <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" version="2.0">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name">
        <description>
          The textual name of the interface as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" 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="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." minEntries="1" maxEntries="1"
        version="2.0">
      <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="Reset" access="readWrite" version="2.18">
        <description>
          Set this to {{true}} to reset all this object's statistics counters
          to zero.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BytesSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface,
          including framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface, including
          framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} that could not be transmitted
          because of errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} that contained errors
          preventing them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="ErrorsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="DiscardPacketsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were not addressed to a multicast or broadcast
          address at this layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a multicast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a broadcast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnknownProtoPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received via the interface which were
          discarded because of an unknown or unsupported protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </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" version="2.0">
      <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" version="2.0">
      <description>
        The ATM Diagnostics object.
      </description>
    </object>

    <object name="Device.ATM.Diagnostics.F5Loopback." access="readOnly"
        minEntries="1" maxEntries="1" version="2.0">
      <description>
        This object provides access to an ATM-layer F5 OAM loopback test.
      </description>

      <parameter name="DiagnosticsState" access="readWrite">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="DiagnosticsState">
            <enumeration value="None" access="readOnly"/>
            <enumeration value="Requested"/>
            <enumeration value="Canceled" optional="true"/>
            <enumeration value="Complete" access="readOnly"/>
            <enumeration value="Error" access="readOnly" optional="true"/>
            <enumeration value="Error_Internal" access="readOnly"/>
            <enumeration value="Error_Other" access="readOnly"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite" version="2.0">
        <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" version="2.0">
        <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" version="2.0">
        <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"
          version="2.0">
        <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"
          version="2.0">
        <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" version="2.0">
        <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" version="2.0">
        <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" version="2.0">
        <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.DOCSIS." access="readOnly" minEntries="1"
        maxEntries="1" version="2.15">
      <description>
        DOCSIS object. This object models the DOCSIS 3.x cable interface
        objects.
      </description>

      <parameter name="CapabilitiesReq"
          id="docsIf3CmCapabilitiesReq/1.3.6.1.4.1.4491.2.1.20.1.21.1"
          access="readOnly">
        <description>
          This attribute contains the TLV encoding for TLV-5 sent in a REG-REQ.
          The first byte of this encoding is expected to be 0x05.

          See {{bibref|CM-SP-MULPIv3.0}}, Modem Capabilities Encoding in the
          Common Radio Frequency Interface Encodings Annex.
        </description>
        <syntax>
          <dataType ref="TLV8"/>
        </syntax>
      </parameter>

      <parameter name="CapabilitiesRsp"
          id="docsIf3CmCapabilitiesRsp/1.3.6.1.4.1.4491.2.1.20.1.21.2"
          access="readOnly">
        <description>
          This attribute contains the TLV encoding for TLV-5 received in a
          REG-RSP. The first byte of this encoding is expected to be 0x05.

          See {{bibref|CM-SP-MULPIv3.0}}, Modem Capabilities Encoding in the
          Common Radio Frequency Interface Encodings Annex.
        </description>
        <syntax>
          <dataType ref="TLV8"/>
        </syntax>
      </parameter>

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

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

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

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

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

    <object name="Device.DOCSIS.Downstream.{i}." access="readOnly"
        numEntriesParameter="DownstreamNumberOfEntries" minEntries="0"
        maxEntries="unbounded" dmr:fixedObject="true" version="2.15">
      <description>
        DOCSIS Downstream interface table (a stackable interface object as
        described in {{bibref|TR-181i2|Section 4.2}}). This table models the
        PHY DOCSIS Downstream 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">
        <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}}.

          Because the interface includes layer 1, the {{enum|LowerLayerDown}}
          value SHOULD never be used.
        </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" version="2.15">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name">
        <description>
          The textual name of the interface as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" 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="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="Upstream">
        <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="CurrentBitRate" access="readOnly"
          activeNotify="canDeny">
        <description>
          The current upstream and downstream PHY bit rate on this interface
          (expressed in {{units}}).

          A value of 0 indicates that the current bit rate is unknown.
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="DownstreamChannelList" access="readWrite">
        <description>
          Downstream Channels associated with this {{object}} interface.
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string>
            <pathRef refType="strong" targetParent="#.DownstreamChannel."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DOCSIS.Downstream.{i}.Stats." minEntries="1"
        maxEntries="1" version="2.15">
      <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="Reset" access="readWrite" version="2.19">
        <description>
          Set this to {{true}} to reset all this object's statistics counters
          to zero.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BytesSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface,
          including framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface, including
          framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} that could not be transmitted
          because of errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} that contained errors
          preventing them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="ErrorsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="DiscardPacketsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were not addressed to a multicast or broadcast
          address at this layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a multicast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a broadcast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnknownProtoPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received via the interface which were
          discarded because of an unknown or unsupported protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DOCSIS.Upstream.{i}." access="readOnly"
        numEntriesParameter="UpstreamNumberOfEntries" minEntries="0"
        maxEntries="unbounded" dmr:fixedObject="true" version="2.15">
      <description>
        DOCSIS Upstream interface table (a stackable interface object as
        described in {{bibref|TR-181i2|Section 4.2}}). This table models the
        PHY DOCSIS Upstream 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">
        <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}}.

          Because the interface includes layer 1, the {{enum|LowerLayerDown}}
          value SHOULD never be used.
        </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" version="2.15">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name">
        <description>
          The textual name of the interface as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" 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="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="Upstream">
        <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="CurrentBitRate" access="readOnly"
          activeNotify="canDeny">
        <description>
          The current upstream and downstream PHY bit rate on this interface
          (expressed in {{units}}).

          A value of 0 indicates that the current bit rate is unknown.
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="UpstreamChannelList" access="readWrite">
        <description>
          Upstream Channels associated with this {{object}} interface.
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string>
            <pathRef refType="strong" targetParent="#.UpstreamChannel."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DOCSIS.Upstream.{i}.Stats." minEntries="1"
        maxEntries="1" version="2.15">
      <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="Reset" access="readWrite" version="2.19">
        <description>
          Set this to {{true}} to reset all this object's statistics counters
          to zero.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BytesSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface,
          including framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface, including
          framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} that could not be transmitted
          because of errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} that contained errors
          preventing them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="ErrorsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="DiscardPacketsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were not addressed to a multicast or broadcast
          address at this layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a multicast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a broadcast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnknownProtoPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received via the interface which were
          discarded because of an unknown or unsupported protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DOCSIS.DownstreamChannel.{i}."
        id="docsIfDownstreamChannelTable/1.3.6.1.2.1.10.127.1.1.1.1"
        access="readOnly"
        numEntriesParameter="DownstreamChannelNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.15">
      <description>
        This table describes the attributes of downstream channels (frequency
        bands).

        See {{bibref|CM-SP-RFIv2.0|Tables 6-16, and 6-17}}.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="ID"
          id="docsIfDownChannelId/1.3.6.1.2.1.10.127.1.1.1.1.1"
          access="readOnly">
        <description>
          The Cable Modem Termination System identification of the downstream
          channel within this particular MAC interface. if the interface is
          down, the object returns the most current value. If the downstream
          channel ID is unknown, this object returns a value of 0.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Frequency"
          id="docsIfDownChannelFrequency/1.3.6.1.2.1.10.127.1.1.1.1.2"
          access="readOnly">
        <description>
          The center of the downstream frequency associated with this channel.
          This object will return the current tuner frequency, measured in
          {{units}}.

          See {{bibref|CM-SP-RFIv2.0|Section 6.3.3}}.
        </description>
        <syntax>
          <int>
            <range minInclusive="0" maxInclusive="1000000000"/>
            <units value="Hz"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="Width"
          id="docsIfDownChannelWidth/1.3.6.1.2.1.10.127.1.1.1.1.3"
          access="readOnly">
        <description>
          The bandwidth in {{units}} of this downstream channel. Most
          implementations are expected to support a channel width of 6 MHz
          (North America) and/or 8 MHz (Europe).

          See {{bibref|CM-SP-RFIv2.0|Table 6-17}}.
        </description>
        <syntax>
          <int>
            <range minInclusive="0" maxInclusive="16000000"/>
            <units value="Hz"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="Modulation"
          id="docsIfDownChannelModulation/1.3.6.1.2.1.10.127.1.1.1.1.4"
          access="readOnly">
        <description>
          The modulation type associated with this downstream channel. If the
          interface is down, this object either returns the configured value
          (from the CMTS), the most current value (from the CM), or the value
          of {{enum|Unknown}}. See the reference for specifics on the
          modulation profiles implied by {{enum|QAM64}} and {{enum|QAM256}}.

          {{enum}}

          See {{bibref|CM-SP-RFIv2.0|Table 6-17.}}
        </description>
        <syntax>
          <string>
            <enumeration value="Unknown" code="1"/>
            <enumeration value="Other" code="2"/>
            <enumeration value="QAM64" code="3"/>
            <enumeration value="QAM256" code="4"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Interleave"
          id="docsIfDownChannelInterleave/1.3.6.1.2.1.10.127.1.1.1.1.5"
          access="readOnly">
        <description>
          The Forward Error Correction (FEC) interleaving used for this
          downstream channel.

          The value {{enum|Taps12increment17}} is supported by EuroDOCSIS cable
          systems only, and the others by DOCSIS cable systems.

          If the interface is down, this object either returns the configured
          value (from the CMTS), the most current value (from the CM), or the
          value of {{enum|Unknown}}. The value of {{enum|Other}} is returned if
          the interleave is known but not defined in the above list. See the
          reference for the FEC configuration described by the setting of this
          object.

          {{enum}}

          See {{bibref|CM-SP-RFIv2.0|Table 6-15}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Unknown" code="1"/>
            <enumeration value="Other" code="2"/>
            <enumeration value="Taps8Increment16" code="3">
              <description>
                Protection 5.9/4.1 usec, latency .22/.15 msec
              </description>
            </enumeration>
            <enumeration value="Taps16Increment8" code="4">
              <description>
                Protection 12/8.2 usec, latency .48/.33 msec
              </description>
            </enumeration>
            <enumeration value="Taps32Increment4" code="5">
              <description>
                Protection 24/16 usec, latency .98/.68 msec
              </description>
            </enumeration>
            <enumeration value="Taps64Increment2" code="6">
              <description>
                Protection 47/33 usec, latency 2/1.4 msec
              </description>
            </enumeration>
            <enumeration value="Taps128Increment1" code="7">
              <description>
                Protection 95/66 usec, latency 4/2.8 msec
              </description>
            </enumeration>
            <enumeration value="Taps12increment17" code="8">
              <description>
                Protection 18/14 usec, latency 0.43/0.32 msec
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="Power"
          id="docsIfDownChannelPower/1.3.6.1.2.1.10.127.1.1.1.1.6"
          access="readOnly">
        <description>
          The received power level. If the interface is down, this object
          either returns the configured value (from the CMTS), the most current
          value (from the CM) or the value of 0. See the reference for
          recommended and required power levels.

          See {{bibref|CM-SP-RFIv2.0|Tables 6-16, 6-17}}.
        </description>
        <syntax>
          <dataType ref="TenthdBmV"/>
        </syntax>
      </parameter>

      <parameter name="Annex"
          id="docsIfDownChannelAnnex/1.3.6.1.2.1.10.127.1.1.1.1.7"
          access="readOnly">
        <description>
          The value of this object indicates the conformance of the
          implementation to important regional cable standards.

          {{enum}}

          See {{bibref|CM-SP-RFIv2.0|Sections 6.3.1, and H.3.1}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Unknown" code="1"/>
            <enumeration value="Other" code="2"/>
            <enumeration value="AnnexA" code="3">
              <description>
                Annex A from ITU-T J.83 is used (equivalent to EN 300 429)
              </description>
            </enumeration>
            <enumeration value="AnnexB" code="4">
              <description>Annex B from ITU-T J.83 is used</description>
            </enumeration>
            <enumeration value="AnnexC" code="5">
              <description>Annex C from ITU-T J.83 is used</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DOCSIS.DownstreamChannel.{i}.SignalQuality."
        id="docsIfSignalQualityTable/1.3.6.1.2.1.10.127.1.1.4.1"
        access="readOnly" minEntries="1" maxEntries="1" version="2.15">
      <description>
        Describes the PHY signal quality of downstream channels.
      </description>

      <parameter name="SignalNoise"
          id="docsIfSigQSignalNoise/1.3.6.1.2.1.10.127.1.1.4.1.5"
          access="readOnly">
        <description>
          Signal/Noise ratio as perceived for this channel. Describes the
          Signal/Noise of the downstream channel, measured in {{units}}.

          See {{bibref|CM-SP-RFIv2.0|Tables 4-1 and 4-2}}.
        </description>
        <syntax>
          <dataType base="TenthdB">
            <units value="TenthdB"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="Microreflections"
          id="docsIfSigQMicroreflections/1.3.6.1.2.1.10.127.1.1.4.1.6"
          access="readOnly">
        <description>
          Microreflections, including in-channel response as perceived on this
          interface, measured in {{units}} (i.e., dBc below the signal level).
          This object is not assumed to return an absolutely accurate value,
          but it gives a rough indication of microreflections received on this
          interface. It is up to the implementer to provide information as
          accurately as possible.

          See {{bibref|CM-SP-RFIv2.0|Tables 4-1 and 4-2}}.
        </description>
        <syntax>
          <int>
            <range minInclusive="0" maxInclusive="255"/>
            <units value="-dBc"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="EqualizationData"
          id="docsIfSigQEqualizationData/1.3.6.1.2.1.10.127.1.1.4.1.7"
          access="readOnly">
        <description>
          Returns the equalization data for the downstream channel.

          * An equalization value indicating an equalization average for the
            upstream channel. Those values have vendor-dependent
            interpretations.

          * Return a zero-length OCTET STRING to indicate that the value is
            unknown or if there is no equalization data available or defined.

          See {{bibref|CM-SP-RFIv2.0|Figure 6-23}}.
        </description>
        <syntax>
          <dataType ref="DocsEqualizerData"/>
        </syntax>
      </parameter>

      <parameter name="ExtUnerroreds"
          id="docsIfSigQExtUnerroreds/1.3.6.1.2.1.10.127.1.1.4.1.8"
          access="readOnly">
        <description>
          Codewords received on this channel without error. This includes all
          codewords, whether or not they were part of frames destined for this
          device. Discontinuities in the value of this counter can occur at
          reinitialization of the managed system.

          See {{bibref|CM-SP-RFIv2.0|Sections 6.2.4, and 6.3.6}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="ExtCorrecteds"
          id="docsIfSigQExtCorrecteds/1.3.6.1.2.1.10.127.1.1.4.1.9"
          access="readOnly">
        <description>
          Codewords received on this channel with correctable errors. This
          includes all codewords, whether or not they were part of frames
          destined for this device. Discontinuities in the value of this
          counter can occur at reinitialization of the managed system.

          See {{bibref|CM-SP-RFIv2.0|Sections 6.2.4, and 6.3.6}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="ExtUncorrectables"
          id="docsIfSigQExtUncorrectables/1.3.6.1.2.1.10.127.1.1.4.1.10"
          access="readOnly">
        <description>
          Codewords received on this channel with uncorrectable errors. This
          includes all codewords, whether or not they were part of frames
          destined for this device. Discontinuities in the value of this
          counter can occur at reinitialization of the managed system.

          See {{bibref|CM-SP-RFIv2.0|Sections 6.2.4, 6.3.6}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DOCSIS.DownstreamChannel.{i}.SignalQualityExt."
        id="docsIf3SignalQualityExtTable/1.3.6.1.4.1.4491.2.1.20.1.24.1"
        access="readOnly" minEntries="1" maxEntries="1" version="2.15">
      <description>
        Describes the received modulation error ratio of each downstream
        channel.
      </description>

      <parameter name="RxMER"
          id="docsIf3SignalQualityExtRxMER/1.3.6.1.4.1.4491.2.1.20.1.24.1.1"
          access="readOnly">
        <description>
          {{param}} provides an in-channel received Modulation Error Ratio
          (MER), measured in {{units}}. {{param}} is defined as an estimate,
          provided by the demodulator, of the ratio: (average constellation
          energy with equally likely symbols) / (average squared magnitude of
          error vector)

          {{param}} is measured just prior to FEC (trellis/Reed-Solomon)
          decoding. {{param}} includes the effects of the HFC channel as well
          as implementation effects of the modulator and demodulator. Error
          vector estimation may vary among demodulator implementations. In the
          case of S-CDMA mode, RxMER is measured on the de-spread signal.
        </description>
        <syntax>
          <dataType base="TenthdB">
            <units value="TenthdB"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="RxMerSamples"
          id="docsIf3SignalQualityExtRxMerSamples/1.3.6.1.4.1.4491.2.1.20.1.24.1.2"
          access="readOnly">
        <description>
          {{param}} is a statistically significant number of symbols processed
          to arrive at the RxMER value.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="FbeNormalizationCoefficient"
          id="docsIf3SignalQualityExtFbeNormalizationCoefficient/1.3.6.1.4.1.4491.2.1.20.1.24.1.3"
          access="readOnly">
        <description>
          The Downstream Adaptive Decision Feedback Equalizer (DFE) is
          implemented as a Feedforward Equalizer (FFE) and a Feedback Equalizer
          (FBE). In order to evaluate the composite DFE response it is
          necessary to normalize the FBE coefficients to 1 and then evaluate
          the FFT(hffe)/FFT(1,hfbe), where the hfbe coefficients have been
          normalized to 1 using FbeNormalizationCoefficient. The complex data
          representing the hffe and hfbe coefficients is contained in the
          EqualizationData MIB. It is possible to implement the DFE such that
          the response is evaluated as FFT(hffe)/FFT(1,-hfbe). In this case the
          FbeNormalizationCoefficient will be reported as a negative number and
          the response will be evaluated as FFT(hffe)/FFT(1,hfbe).
        </description>
        <syntax>
          <int/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DOCSIS.UpstreamChannel.{i}."
        id="docsIfUpstreamChannelTable/1.3.6.1.2.1.10.127.1.1.2.1"
        access="readWrite" numEntriesParameter="UpstreamChannelNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.15">
      <description>
        This table describes the attributes of attached upstream channels.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="ID" id="docsIfUpChannelId/1.3.6.1.2.1.10.127.1.1.2.1.1"
          access="readOnly">
        <description>
          The CMTS identification of the upstream channel.
        </description>
        <syntax>
          <int>
            <range minInclusive="0" maxInclusive="255"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="Frequency"
          id="docsIfUpChannelFrequency/1.3.6.1.2.1.10.127.1.1.2.1.2"
          access="readOnly">
        <description>
          The center of the frequency band associated with this upstream
          interface. This object returns 0 if the frequency is undefined or
          unknown. Minimum permitted upstream frequency is 5,000,000 {{units}}
          for current technology.

          See {{bibref|CM-SP-RFIv2.0|Table 4-2}}.
        </description>
        <syntax>
          <int>
            <range minInclusive="0" maxInclusive="1000000000"/>
            <units value="Hz"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="Width"
          id="docsIfUpChannelWidth/1.3.6.1.2.1.10.127.1.1.2.1.3"
          access="readOnly">
        <description>
          The bandwidth in {{units}} of this upstream interface. This object
          returns 0 if the interface width is undefined or unknown. Minimum
          permitted interface width is currently 200,000 {{units}}.

          See {{bibref|CM-SP-RFIv2.0|Table 6-5}}.
        </description>
        <syntax>
          <int>
            <range minInclusive="0" maxInclusive="64000000"/>
            <units value="Hz"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="SlotSize"
          id="docsIfUpChannelSlotSize/1.3.6.1.2.1.10.127.1.1.2.1.5"
          access="readOnly">
        <description>
          Applicable to TDMA and ATDMA channel types only. The number of
          {{units}} ticks in each upstream mini-slot. Returns zero if the value
          is undefined or unknown or in case of an SCDMA channel.

          See {{bibref|CM-SP-RFIv2.0|Section 8.1.2.4}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="6.25 microsecond"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TxTimingOffset"
          id="docsIfUpChannelTxTimingOffset/1.3.6.1.2.1.10.127.1.1.2.1.6"
          access="readOnly">
        <description>
          A measure of the current round trip time obtained from the ranging
          offset (initial ranging offset + ranging offset adjustments). Used
          for timing of CM upstream transmissions to ensure synchronized
          arrivals at the CMTS. Units are one 64th fraction of 6.25
          microseconds.

          See {{bibref|CM-SP-RFIv2.0|Section 6.2.19}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="RangingBackoffStart"
          id="docsIfUpChannelRangingBackoffStart/1.3.6.1.2.1.10.127.1.1.2.1.7"
          access="readOnly">
        <description>
          The initial random backoff window to use when retrying Ranging
          Requests. Expressed as a power of 2. A value of 16 at the CMTS
          indicates that a proprietary adaptive retry mechanism is to be used.

          See {{bibref|CM-SP-RFIv2.0|Sections 8.3.4, and 9.4}}.
        </description>
        <syntax>
          <int>
            <range minInclusive="0" maxInclusive="16"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="RangingBackoffEnd"
          id="docsIfUpChannelRangingBackoffEnd/1.3.6.1.2.1.10.127.1.1.2.1.8"
          access="readOnly">
        <description>
          The final random backoff window to use when retrying Ranging
          Requests. Expressed as a power of 2. A value of 16 at the CMTS
          indicates that a proprietary adaptive retry mechanism is to be used.

          See {{bibref|CM-SP-RFIv2.0|Section 8.3.4, and 9.4}}.
        </description>
        <syntax>
          <int>
            <range minInclusive="0" maxInclusive="16"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="TxBackoffStart"
          id="docsIfUpChannelTxBackoffStart/1.3.6.1.2.1.10.127.1.1.2.1.9"
          access="readOnly">
        <description>
          The initial random backoff window to use when retrying transmissions.
          Expressed as a power of 2. A value of 16 at the CMTS indicates that a
          proprietary adaptive retry mechanism is to be used.

          See {{bibref|CM-SP-RFIv2.0|Section 8.3.4, and 9.4}}.
        </description>
        <syntax>
          <int>
            <range minInclusive="0" maxInclusive="16"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="TxBackoffEnd"
          id="docsIfUpChannelTxBackoffEnd/1.3.6.1.2.1.10.127.1.1.2.1.10"
          access="readOnly">
        <description>
          The final random backoff window to use when retrying transmissions.
          Expressed as a power of 2. A value of 16 at the CMTS indicates that a
          proprietary adaptive retry mechanism is to be used.

          See {{bibref|CM-SP-RFIv2.0|Section 8.3.4, and 9.4}}.
        </description>
        <syntax>
          <int>
            <range minInclusive="0" maxInclusive="16"/>
          </int>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DOCSIS.UpstreamChannel.{i}.Status."
        id="docsIf3CmStatusUsTable/1.3.6.1.4.1.4491.2.1.20.1.2.1"
        access="readOnly" minEntries="1" maxEntries="1" version="2.15">
      <description>
        This object provides Upstream channel information previously available
        in the SNMP table docsIfCmStatusTable.
      </description>

      <parameter name="TxPower"
          id="docsIf3CmStatusUsTxPower/1.3.6.1.4.1.4491.2.1.20.1.2.1.1"
          access="readOnly">
        <description>
          This attribute represents the operational CM transmit power for this
          SC-QAM upstream channel, in {{units}}. In order for this attribute to
          provide consistent information under all circumstances, a 3.1 CM will
          report the average total power for the SC-QAM channel the same as was
          done for DOCSIS 3.0, regardless of whether it is operating with a 3.1
          or a 3.0 CMTS. The value that is reported was referred to as Pr in
          the DOCSIS 3.0 PHY Spec.
        </description>
        <syntax>
          <dataType base="TenthdBmV">
            <units value="TenthdBmV"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="T3Timeouts"
          id="docsIf3CmStatusUsT3Timeouts/1.3.6.1.4.1.4491.2.1.20.1.2.1.2"
          access="readOnly">
        <description>
          This attribute denotes the number of times counter T3 expired in the
          CM for this upstream channel. Discontinuities in the value of this
          counter can occur at re-initialization of the managed system.

          See {{bibref|RFC2863}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="T4Timeouts"
          id="docsIf3CmStatusUsT4Timeouts/1.3.6.1.4.1.4491.2.1.20.1.2.1.3"
          access="readOnly">
        <description>
          This attribute denotes the number of times counter T4 expired in the
          CM for this upstream channel. Discontinuities in the value of this
          counter can occur at re-initialization of the managed system.

          See {{bibref|RFC2863}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="RangingAborteds"
          id="docsIf3CmStatusUsRangingAborteds/1.3.6.1.4.1.4491.2.1.20.1.2.1.4"
          access="readOnly">
        <description>
          This attribute denotes the number of times the ranging process was
          aborted by the CMTS. Discontinuities in the value of this counter can
          occur at re-initialization of the managed system.

          See {{bibref|RFC2863}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="ModulationType"
          id="docsIf3CmStatusUsModulationType/1.3.6.1.4.1.4491.2.1.20.1.2.1.5"
          access="readOnly">
        <description>
          This attribute indicates modulation type status currently used by the
          CM for this upstream channel. Since this object specifically
          identifies PHY Layer mode, the shared upstream channel type
          "tdmaAndAtdma" is not permitted.

          See {{bibref|RFC2863}}.
        </description>
        <syntax>
          <dataType ref="DocsisUpstreamType"/>
        </syntax>
      </parameter>

      <parameter name="EqData"
          id="docsIf3CmStatusUsEqData/1.3.6.1.4.1.4491.2.1.20.1.2.1.6"
          access="readOnly">
        <description>
          This attribute indicates the pre-equalization data for the specified
          upstream Channel on this CM after convolution with data indicated in
          the RNG-RSP. This data is valid when docsIfUpChannelPreEqEnable RFC
          4546 is set to {{true}}.

          See {{bibref|RFC2863}} and {{bibref|RFC4546}}.
        </description>
        <syntax>
          <dataType ref="DocsEqualizerData"/>
        </syntax>
      </parameter>

      <parameter name="T3Exceededs"
          id="docsIf3CmStatusUsT3Exceededs/1.3.6.1.4.1.4491.2.1.20.1.2.1.7"
          access="readOnly">
        <description>
          This attribute denotes the number of times for excessive T3 timeouts.
          Discontinuities in the value of this counter can occur at
          re-initialization of the managed system.

          See {{bibref|RFC2863}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="IsMuted"
          id="docsIf3CmStatusUsIsMuted/1.3.6.1.4.1.4491.2.1.20.1.2.1.8"
          access="readOnly">
        <description>
          This attribute denotes whether the upstream channel is muted.

          See {{bibref|CM-SP-MULPIv3.0}}, Media Access Control specification.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="RangingStatus"
          id="docsIf3CmStatusUsRangingStatus/1.3.6.1.4.1.4491.2.1.20.1.2.1.9"
          access="readOnly">
        <description>
          This attribute denotes the ranging state of the CM.

          See {{bibref|CM-SP-MULPIv3.0}}, Media Access Control specification.
        </description>
        <syntax>
          <dataType ref="RangingState"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DOCSIS.Interface.{i}."
        numEntriesParameter="InterfaceNumberOfEntries" minEntries="0"
        maxEntries="unbounded" dmr:fixedObject="true" version="2.15">
      <description>
        DOCSIS Layer 2 (MAC) interface table (a stackable interface object as
        described in {{bibref|TR-181i2|Section 4.2}}). This table models the
        MAC level DOCSIS 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">
        <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" version="2.15">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name">
        <description>
          The textual name of the interface as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" 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>
        </syntax>
      </parameter>

      <parameter name="MACAddress" access="readOnly">
        <description>
          The MAC Address of the interface.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="CMTSAddress"
          id="docsIfCmCmtsAddress/1.3.6.1.2.1.10.127.1.2.1.1.1"
          access="readOnly">
        <description>
          Identifies the CMTS that is believed to control this MAC domain. This
          will be the source address from SYNC, MAP, and other MAC-layer
          messages. If the CMTS is unknown, returns 00-00-00-00-00-00.

          See {{bibref|CM-SP-RFIv2.0|Section 8.2.2}}.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="Capabilities"
          id="docsIfCmCapabilities/1.3.6.1.2.1.10.127.1.2.1.1.2"
          access="readOnly">
        <description>
          Identifies the capabilities of the MAC implementation at this
          interface. Note that packet transmission is always supported.
          Therefore, there is no specific bit required to explicitly indicate
          this capability.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="ATMCells" code="0"/>
            <enumeration value="Concatenation" code="1"/>
          </string>
        </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="DOCSISVersion"
          id="docsIfDocsisBaseCapability/1.3.6.1.2.1.10.127.1.1.5"
          access="readOnly">
        <description>
          Indication of the DOCSIS capability of the device.

          See {{bibref|CM-SP-RFIv2.0|Annex G}}.
        </description>
        <syntax>
          <string>
            <enumeration value="DOCSIS10"/>
            <enumeration value="DOCSIS11"/>
            <enumeration value="DOCSIS20"/>
            <enumeration value="DOCSIS30"/>
            <enumeration value="DOCSIS31"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="MdCfgIpProvMode"
          id="docsIf3CmMdCfgIpProvMode/1.3.6.1.4.1.4491.2.1.20.1.31.1.1"
          access="readOnly">
        <description>
          {{param}} specifies how the IP provisioning mode is configured. The
          CM relies upon the CMTS to facilitate the successful IP address
          acquisition independently of the MDD.

          {{enum}}

          See {{bibref|CM-SP-MULPIv3.0}}, IP Initialization Parameters TLV
          Section.
        </description>
        <syntax>
          <string>
            <enumeration value="IPv4Only" code="0">
              <description>
                The Cable Modem will initiate the acquisition of a single IPv4
                address for the Cable Modem management stack.
              </description>
            </enumeration>
            <enumeration value="IPv6Only" code="1">
              <description>
                The Cable Modem will initiate the acquisition of a single IPv6
                address for the Cable Modem management stack.
              </description>
            </enumeration>
            <enumeration value="HonorMDD" code="4">
              <description>
                The Cable Modem will initiate the acquisition of an IPv6 or
                IPv4 address as directed by the MDD message for provisioning
                and operation.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DOCSIS.Interface.{i}.Stats." minEntries="1"
        maxEntries="1" version="2.15">
      <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="Reset" access="readWrite" version="2.19">
        <description>
          Set this to {{true}} to reset all this object's statistics counters
          to zero.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BytesSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface,
          including framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface, including
          framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} that could not be transmitted
          because of errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} that contained errors
          preventing them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="ErrorsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="DiscardPacketsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were not addressed to a multicast or broadcast
          address at this layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a multicast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a broadcast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnknownProtoPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received via the interface which were
          discarded because of an unknown or unsupported protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DOCSIS.Interface.{i}.ConnectivityStatus."
        id="docsIf3CmStatusTable/1.3.6.1.4.1.4491.2.1.20.1.1.1"
        access="readOnly" minEntries="1" maxEntries="1" version="2.15">
      <description>
        This object defines attributes of the CM connectivity status. This
        object provides CM connectivity status information of the CM previously
        available in the SNMP table docsIfCmStatusTable.

        See {{bibref|RFC4546}}.
      </description>

      <parameter name="Value"
          id="docsIf3CmStatusValue/1.3.6.1.4.1.4491.2.1.20.1.1.1.1"
          access="readOnly">
        <description>
          This attribute denotes the current CM connectivity state. For the
          case of IP acquisition related states, this attribute reflects states
          for the current CM provisioning mode, not the {{enum|Other}} DHCP
          process associated with dual stack operation.

          See {{bibref|CM-SP-MULPIv3.0}}, Establishing IP Connectivity.
        </description>
        <syntax>
          <dataType ref="CmRegState"/>
        </syntax>
      </parameter>

      <parameter name="StatusCode"
          id="docsIf3CmStatusCode/1.3.6.1.4.1.4491.2.1.20.1.1.1.2"
          access="readOnly">
        <description>
          This attribute denotes the status code for CM as defined in the OSSI
          Specification. The status code consists of a single character
          indicating error groups, followed by a two-or three-digit number
          indicating the status condition, followed by a decimal. An example of
          a returned value could be "T101.0". The zero-length hex string
          indicates no status code yet registered.

          See {{bibref|CM-SP-OSSIv3.0}}, Format and Content for Event, Syslog,
          and SNMP Notification Annex.
        </description>
        <syntax>
          <string>
            <size minLength="0" maxLength="0"/>
            <size minLength="5" maxLength="7"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Resets"
          id="docsIf3CmStatusResets/1.3.6.1.4.1.4491.2.1.20.1.1.1.3"
          access="readOnly">
        <description>
          This attribute denotes the number of times the CM reset or
          initialized this interface. Discontinuities in the value of this
          counter can occur at re-initialization of the managed system, and at
          other times as indicated by the value of ifCounterDiscontinuityTime
          for the CM MAC Domain interface.

          See {{bibref|RFC2863}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="LostSyncs"
          id="docsIf3CmStatusLostSyncs/1.3.6.1.4.1.4491.2.1.20.1.1.1.4"
          access="readOnly">
        <description>
          This attribute denotes the number of times the CM lost
          synchronization with the downstream channel. Discontinuities in the
          value of this counter can occur at re-initialization of the managed
          system, and at other times as indicated by the value of
          ifCounterDiscontinuityTime for the CM MAC Domain interface.

          See {{bibref|RFC2863}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="InvalidMaps"
          id="docsIf3CmStatusInvalidMaps/1.3.6.1.4.1.4491.2.1.20.1.1.1.5"
          access="readOnly">
        <description>
          This attribute denotes the number of times the CM received invalid
          MAP messages. Discontinuities in the value of this counter can occur
          at re-initialization of the managed system, and at other times as
          indicated by the value of ifCounterDiscontinuityTime for the CM MAC
          Domain interface.

          See {{bibref|RFC2863}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="InvalidUcds"
          id="docsIf3CmStatusInvalidUcds/1.3.6.1.4.1.4491.2.1.20.1.1.1.6"
          access="readOnly">
        <description>
          This attribute denotes the number of times the CM received invalid
          UCD messages. Discontinuities in the value of this counter can occur
          at re-initialization of the managed system, and at other times as
          indicated by the value of ifCounterDiscontinuityTime for the CM MAC
          Domain interface.

          See {{bibref|RFC2863}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="InvalidRangingRsps"
          id="docsIf3CmStatusInvalidRangingRsps/1.3.6.1.4.1.4491.2.1.20.1.1.1.7"
          access="readOnly">
        <description>
          This attribute denotes the number of times the CM received invalid
          ranging response messages. Discontinuities in the value of this
          counter can occur at re-initialization of the managed system, and at
          other times as indicated by the value of ifCounterDiscontinuityTime
          for the CM MAC Domain interface.

          See {{bibref|RFC2863}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="InvalidRegRsps"
          id="docsIf3CmStatusInvalidRegRsps/1.3.6.1.4.1.4491.2.1.20.1.1.1.8"
          access="readOnly">
        <description>
          This attribute denotes the number of times the CM received invalid
          registration response messages. Discontinuities in the value of this
          counter can occur at re-initialization of the managed system, and at
          other times as indicated by the value of ifCounterDiscontinuityTime
          for the CM MAC Domain interface.

          See {{bibref|RFC2863}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="T1Timeouts"
          id="docsIf3CmStatusT1Timeouts/1.3.6.1.4.1.4491.2.1.20.1.1.1.9"
          access="readOnly">
        <description>
          This attribute denotes the number of times counter T1 expired in the
          CM. Discontinuities in the value of this counter can occur at
          re-initialization of the managed system, and at other times as
          indicated by the value of ifCounterDiscontinuityTime for the CM MAC
          Domain interface.

          See {{bibref|RFC2863}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="T2Timeouts"
          id="docsIf3CmStatusT2Timeouts/1.3.6.1.4.1.4491.2.1.20.1.1.1.10"
          access="readOnly">
        <description>
          This attribute denotes the number of times counter T2 expired in the
          CM. Discontinuities in the value of this counter can occur at
          re-initialization of the managed system, and at other times as
          indicated by the value of ifCounterDiscontinuityTime for the CM MAC
          Domain interface.

          See {{bibref|RFC2863}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DOCSIS.SpectrumAnalysis." access="readOnly"
        minEntries="1" maxEntries="1" version="2.15">
      <description/>

      <parameter name="Enable"
          id="docsIf3CmSpectrumAnalysisCtrlCmdEnable/1.3.6.1.4.1.4491.2.1.20.1.34.1"
          access="readWrite">
        <description>
          This attribute is used to enable or disable the spectrum analyzer
          feature. Setting this attribute to {{true}} triggers the CM to
          initiate measurements for the spectrum analyzer feature based on the
          other configuration attributes for the feature. By default, the
          feature is disabled unless explicitly enabled.

          Note that the feature may be disabled by the system under certain
          circumstances if the spectrum analyzer would affect critical
          services. In such a case, the attribute will return {{false}} when
          read, and will reject sets to {{true}} with an error. Once the
          feature is enabled, any change to this object's configuration might
          not be effective until the feature is re-enabled again.

          See {{bibref|CM-SP-CM-OSSIv3.1}}, Proactive Network Maintenance
          Information Model.
        </description>
        <syntax>
          <boolean/>
          <default type="factory" value="false"/>
        </syntax>
      </parameter>

      <parameter name="InactivityTimeout"
          id="docsIf3CmSpectrumAnalysisCtrlCmdInactivityTimeout/1.3.6.1.4.1.4491.2.1.20.1.34.2"
          access="readWrite">
        <description>
          This attribute controls the length of time (in {{units}}) after the
          last spectrum analysis measurement before the feature is
          automatically disabled. If set to a value of 0, the feature will
          remain enabled until it is explicitly disabled.

          See {{bibref|CM-SP-CM-OSSIv3.1}}, Proactive Network Maintenance
          Information Model.
        </description>
        <syntax>
          <int>
            <range minInclusive="0" maxInclusive="86400"/>
            <units value="seconds"/>
          </int>
          <default type="factory" value="300"/>
        </syntax>
      </parameter>

      <parameter name="FirstSegmentCenterFrequency"
          id="docsIf3CmSpectrumAnalysisCtrlCmdFirstSegmentCenterFrequency/1.3.6.1.4.1.4491.2.1.20.1.34.3"
          access="readWrite">
        <description>
          This attribute controls the center frequency (in {{units}}) of the
          first segment for the spectrum analysis measurement. The frequency
          bins for this segment lie symmetrically to the left and right of this
          center frequency.

          If the number of bins in a segment is odd, the segment center
          frequency lies directly on the center bin.

          If the number of bins in a segment is even, the segment center
          frequency lies halfway between two bins.

          Changing the value of this attribute may result in changes to the
          {{object|Result}} table. Note that if this parameter is set to an
          invalid value, the device may return an error, or may adjust the
          value of the parameter to the closest valid value.

          See {{bibref|CM-SP-CM-OSSIv3.1}}, Proactive Network Maintenance
          Information Model.
        </description>
        <syntax>
          <unsignedInt>
            <units value="Hz"/>
          </unsignedInt>
          <default type="factory" value="93000000"/>
        </syntax>
      </parameter>

      <parameter name="LastSegmentCenterFrequency"
          id="docsIf3CmSpectrumAnalysisCtrlCmdLastSegmentCenterFrequency/1.3.6.1.4.1.4491.2.1.20.1.34.4"
          access="readWrite">
        <description>
          This attribute controls the center frequency (in {{units}}) of the
          last segment of the spectrum analysis measurement.

          The frequency bins for this segment lie symmetrically to the left and
          right of this center frequency. If the number of bins in a segment is
          odd, the segment center frequency lies directly on the center bin. If
          the number of bins in a segment is even, the segment center frequency
          lies halfway between two bins.

          The value of the {{param}} should be equal to the
          {{param|FirstSegmentCenterFrequency}} plus and integer number of
          segment spans as determined by the {{param|SegmentFrequencySpan}}.

          Changing the value of this attribute may result in changes to the
          {{object|Result}} table.

          Note that if this parameter is set to an invalid value, the device
          may return an error, or may adjust the value of the parameter to the
          closest valid value.

          See {{bibref|CM-SP-CM-OSSIv3.1}}, Proactive Network Maintenance
          Information Model.
        </description>
        <syntax>
          <unsignedInt>
            <units value="Hz"/>
          </unsignedInt>
          <default type="factory" value="993000000"/>
        </syntax>
      </parameter>

      <parameter name="SegmentFrequencySpan"
          id="docsIf3CmSpectrumAnalysisCtrlCmdSegmentFrequencySpan/1.3.6.1.4.1.4491.2.1.20.1.34.5"
          access="readWrite">
        <description>
          This attribute controls the frequency span (in {{units}}) of each
          segment (instance) of the {{object|Result.{i}}} table.

          If set to a value of 0, then a default span will be chosen based on
          the hardware capabilities of the device. Segments are contiguous from
          the {{param|FirstSegmentCenterFrequency}} to the
          {{param|LastSegmentCenterFrequency}} and the center frequency for
          each successive segment is incremented by the {{param}}. The number
          of segments is ({{param|LastSegmentCenterFrequency}} -
          {{param|FirstSegmentCenterFrequency}})/{{param}} + 1. A segment is
          equivalent to an instance in the {{object|Result}} table. The chosen
          {{param}} affects the number of entries in {{object|Result}} table. A
          more granular {{param}} may adversely affect the amount of time
          needed to query the table entries in addition to possibly increasing
          the acquisition time.

          Changing the value of this attribute may result in changes to
          {{object|Result}} table.

          Note that if this parameter is set to an invalid value, the device
          may return an error, or may adjust the value of the parameter to the
          closest valid value.

          See {{bibref|CM-SP-CM-OSSIv3.1}}, Proactive Network Maintenance
          Information Model.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1000000" maxInclusive="900000000"/>
            <units value="Hz"/>
          </unsignedInt>
          <default type="factory" value="7500000"/>
        </syntax>
      </parameter>

      <parameter name="NumBinsPerSegment"
          id="docsIf3CmSpectrumAnalysisCtrlCmdNumBinsPerSegment/1.3.6.1.4.1.4491.2.1.20.1.34.6"
          access="readWrite">
        <description>
          This parameter controls the number of bins collected by the
          measurement performed for each segment (instance) in the
          {{object|Result}} table.

          Note that if this parameter is set to an invalid value, the device
          may return an error, or may adjust the value of the parameter to the
          closest valid value.

          See {{bibref|CM-SP-CM-OSSIv3.1}}, Proactive Network Maintenance
          Information Model.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="2" maxInclusive="2048"/>
          </unsignedInt>
          <default type="factory" value="256"/>
        </syntax>
      </parameter>

      <parameter name="EquivalentNoiseBandwidth"
          id="docsIf3CmSpectrumAnalysisCtrlCmdEquivalentNoiseBandwidth/1.3.6.1.4.1.4491.2.1.20.1.34.7"
          access="readWrite">
        <description>
          This parameter allows the user to request an equivalent noise
          bandwidth (measured in {{units}}) for the resolution bandwidth filter
          used in the spectrum analysis. This corresponds to the spectral width
          of the window function used when performing a discrete Fourier
          transform for the analysis.

          The window function which corresponds to a value written to this
          parameter may be obtained by reading the value of
          {{param|WindowFunction}}.

          If an unsupported value is requested, the device may return an error,
          or choose the closest valid value to the one which is requested. If
          the closest value is chosen, then a subsequent read of this parameter
          will return the actual value which is in use.

          See {{bibref|CM-SP-CM-OSSIv3.1}}, Proactive Network Maintenance
          Information Model.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="50" maxInclusive="500"/>
            <units value="hundredthsbin"/>
          </unsignedInt>
          <default type="factory" value="150"/>
        </syntax>
      </parameter>

      <parameter name="WindowFunction"
          id="docsIf3CmSpectrumAnalysisCtrlCmdWindowFunction/1.3.6.1.4.1.4491.2.1.20.1.34.8"
          access="readWrite">
        <description>
          This parameter controls or indicates the windowing function which
          will be used when performing the discrete Fourier transform for the
          analysis. The {{param}} and the Equivalent Noise Bandwidth are
          related. If a particular {{param}} is selected, then the
          {{param|EquivalentNoiseBandwidth}} for the function which is in use,
          will be reported by the {{param|EquivalentNoiseBandwidth}} parameter.
          Alternatively if an {{param|EquivalentNoiseBandwidth}} value is
          chosen then if a {{param}} function representing that
          {{param|EquivalentNoiseBandwidth}} is defined in the CM, that value
          will be reported in {{param}}, or a value of {{enum|Other}} will be
          reported. Use of "modern" windowing functions not yet defined will
          likely be reported as {{enum|Other}}.

          {{enum}}

          Note that all window functions may not be supported by all devices.
          If an attempt is made to set the object to an unsupported window
          function, or if writing of the WindowFunction is not supported, an
          error will be returned.

          See {{bibref|CM-SP-CM-OSSIv3.1}}, Proactive Network Maintenance
          Information Model.
        </description>
        <syntax>
          <dataType ref="SpectrumAnalysisWindowFunction"/>
        </syntax>
      </parameter>

      <parameter name="NumberOfAverages"
          id="docsIf3CmSpectrumAnalysisCtrlCmdNumberOfAverages/1.3.6.1.4.1.4491.2.1.20.1.34.9"
          access="readWrite">
        <description>
          This parameter controls the number of averages that will be performed
          on spectral bins. The average will be computed using the 'leaky
          integrator' method, where: reported bin value = alpha*accumulated bin
          values + (1-alpha)*current bin value.

          Alpha is one minus the reciprocal of the number of averages. For
          example, if N=25, then alpha = 0.96. A value of 1 indicates no
          averaging. Re-writing the number of averages will restart the
          averaging process. If there are no accumulated values, the
          accumulators are made equal to the first measured bin amplitudes.

          If an attempt is made to set the parameter to an unsupported number
          of averages, an error will be returned.

          See {{bibref|CM-SP-CM-OSSIv3.1}}, Proactive Network Maintenance
          Information Model.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="1000"/>
          </unsignedInt>
          <default type="factory" value="1"/>
        </syntax>
      </parameter>

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

    <object name="Device.DOCSIS.SpectrumAnalysis.Result.{i}."
        id="docsIf3CmSpectrumAnalysisMeasTable/1.3.6.1.4.1.4491.2.1.20.1.35.1"
        access="readOnly" minEntries="0" maxEntries="unbounded"
        numEntriesParameter="ResultNumberOfEntries" version="2.15">
      <description>
        {{section|table}}This table provides a list of spectral analysis
        measurements as performed across a range of center frequencies. The
        table is capable of representing a full scan of the spectrum.

        {{section|row}}Each {{object}} instance represents the spectral
        analysis around a single center frequency point in the spectrum.
      </description>
      <uniqueKey functional="true">
        <parameter ref="Frequency"/>
      </uniqueKey>

      <parameter name="Frequency"
          id="docsIf3CmSpectrumAnalysisMeasFrequency/1.3.6.1.4.1.4491.2.1.20.1.35.1.1"
          access="readOnly">
        <description>
          The center frequency (in {{units}}) of the spectral analysis span
          which is represented by this instance.
        </description>
        <syntax>
          <int>
            <range minInclusive="-2147483648" maxInclusive="2147483647"/>
            <units value="Hz"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="AmplitudeData"
          id="docsIf3CmSpectrumAnalysisMeasAmplitudeData/1.3.6.1.4.1.4491.2.1.20.1.35.1.2"
          access="readOnly">
        <description>
          This parameter provides a list of the spectral amplitudes as measured
          at the center frequency specified by the {{param|Frequency}}.

          The frequency bins are ordered from lowest to highest frequencies
          covering the frequency span. Information about the center frequency,
          frequency span, number of bins and resolution bandwidth are included
          to provide context to the measurement point.
        </description>
        <syntax>
          <dataType ref="AmplitudeData"/>
        </syntax>
      </parameter>

      <parameter name="TotalSegmentPower"
          id="docsIf3CmSpectrumAnalysisMeasTotalSegmentPower/1.3.6.1.4.1.4491.2.1.20.1.35.1.3"
          access="readOnly">
        <description>
          This parameter provides the total RF power present in the segment
          with the center frequency equal to the {{param|Frequency}} and the
          span equal to the {{param|#.SegmentFrequencySpan}}. The value
          represents the sum of the spectrum power in all of the associated
          bins. The value is computed by summing power (not dB) values and
          converting the final sum to {{units}}.
        </description>
        <syntax>
          <dataType base="TenthdB">
            <units value="TenthdB"/>
          </dataType>
        </syntax>
      </parameter>
    </object>

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

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

    <object name="Device.PTM.Link.{i}." access="readWrite"
        numEntriesParameter="LinkNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.0">
      <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|##.FAST.Line}}, {{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 interface.

          This parameter is based on ''ifAdminStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Status">
        <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" version="2.0">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name">
        <description>
          The textual name of the interface as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" 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="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." minEntries="1" maxEntries="1"
        version="2.0">
      <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="Reset" access="readWrite" version="2.19">
        <description>
          Set this to {{true}} to reset all this object's statistics counters
          to zero.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BytesSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface,
          including framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface, including
          framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} that could not be transmitted
          because of errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} that contained errors
          preventing them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="ErrorsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="DiscardPacketsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were not addressed to a multicast or broadcast
          address at this layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a multicast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a broadcast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnknownProtoPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received via the interface which were
          discarded because of an unknown or unsupported protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Ethernet." access="readOnly" minEntries="1"
        maxEntries="1" version="2.0">
      <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 Channel Access Method (CAM) part of the MAC layer.
        {{object|Link}} is media-independent and models the Logical Link
        Control (LLC) layer. An "outer" {{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="WoLSupported" access="readOnly" version="2.13">
        <description>
          Indicates that WoL (Wake on LAN) over Ethernet is supported.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="FlowControlSupported" access="readOnly" version="2.14">
        <description>
          Indicates that Flow Control over Ethernet is supported, as per
          {{bibref|802.3-2015}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

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

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

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

      <parameter name="LAGNumberOfEntries" access="readOnly" version="2.12">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

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

    <object name="Device.Ethernet.Interface.{i}."
        numEntriesParameter="InterfaceNumberOfEntries" minEntries="0"
        maxEntries="unbounded" dmr:fixedObject="true" version="2.0">
      <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 only models the PHY and
        Connection Access Method of the Ethernet interface MAC. A
        {{object|#.Link}} is also required to model a full Ethernet device.
      </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">
        <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}}.

          Because the interface includes layer 1, the {{enum|LowerLayerDown}}
          value SHOULD never be used.
        </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" version="2.0">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name">
        <description>
          The textual name of the interface as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" 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">
        <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="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="MACAddress" access="readOnly">
        <description>
          The unique manufacturer-assigned Ethernet hardware address of the
          interface, also referred to as burned-in MAC address.

          Note: This is not necessarily the same as the MAC address used for
          higher-level protocols, which is modeled via the
          {{param|#.Link.{i}.MACAddress}} parameter. Its main purpose is the
          identification of a specific Ethernet interface; the information can
          also can be used to perform Wake on LAN.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="SupportedLinkModes" access="readOnly" version="2.16">
        <description>
          Reports the supported link modes. MUST be reported in a compliant way
          as defined in {{bibref|IANAMauMIB|IANAifMauTypeListBits}}. For
          example, IANAifMauTypeListBits defines the following link mode types:

          * ''16'' (100BASE-TX full duplex mode)

          * ''26'' (1000BASE-SX full duplex mode)

          * ''30'' (1000BASE-T full duplex mode)

          * ''54'' (10GBASE-T)

          * ''103'' (2.5GBASE-T)

          * ''104'' (5GBASE-T)
        </description>
        <syntax>
          <list/>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="AdvertisedLinkModes" access="readWrite" version="2.19">
        <description>
          Sets the advertised link modes. MUST be set in a compliant way as
          defined in {{bibref|IANAMauMIB|IANAifMauTypeListBits}}. For example,
          IANAifMauTypeListBits defines the following link mode types:

          * ''16'' (100BASE-TX full duplex mode)

          * ''26'' (1000BASE-SX full duplex mode)

          * ''30'' (1000BASE-T full duplex mode)

          * ''54'' (10GBASE-T)

          * ''103'' (2.5GBASE-T)

          * ''104'' (5GBASE-T)
        </description>
        <syntax>
          <list/>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="LinkPartnerAdvertisedLinkModes" access="readOnly"
          version="2.19">
        <description>
          Reports the link modes advertised by the link partner. MUST be
          reported in a compliant way as defined in
          {{bibref|IANAMauMIB|IANAifMauTypeListBits}}. For example,
          IANAifMauTypeListBits defines the following link mode types:

          * ''16'' (100BASE-TX full duplex mode)

          * ''26'' (1000BASE-SX full duplex mode)

          * ''30'' (1000BASE-T full duplex mode)

          * ''54'' (10GBASE-T)

          * ''103'' (2.5GBASE-T)

          * ''104'' (5GBASE-T)
        </description>
        <syntax>
          <list/>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="CurrentBitRate" access="readOnly"
          activeNotify="canDeny" version="2.7">
        <description>
          The current upstream and downstream PHY bit rate on this interface
          (expressed in {{units}}).

          A value of 0 indicates that the current bit rate is unknown.
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

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

      <parameter name="CurrentDuplexMode" access="readOnly" version="2.18">
        <description>
          The duplex mode currently in use by this connection.
        </description>
        <syntax>
          <string>
            <enumeration value="Unknown"/>
            <enumeration value="Half"/>
            <enumeration value="Full"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="EEECapability" access="readOnly" version="2.8">
        <description>
          Indicates whether this physical ethernet port supports Energy
          Efficient Ethernet as specified in
          {{bibref|802.3-2012_section6|Section 78}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="EEEEnable" access="readWrite" version="2.8">
        <description>
          Whether Energy Efficient Ethernet
          {{bibref|802.3-2012_section6|Section 78}} support is currently
          enabled. When enabled, this ethernet port will be capable of entering
          or exiting Low Power Idle (LPI) mode.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="EEEStatus" access="readOnly" version="2.17">
        <description>
          Indicates the active state of Energy Efficient Ethernet
          {{bibref|802.3-2012_section6|Section 78}}.

          The {{enum|Disabled}} value indicates that {{param|EEEEnable}} is
          disabled.

          The {{enum|Active}} value indicates that {{param|EEEEnable}} is
          enabled and that EEE support has been negotiated with the link
          partner. In this state EEE will be used.

          The {{enum|Inactive}} value indicates that {{param|EEEEnable}} is
          disabled, or that EEE support has not been negotiated with the link
          partner, either because the link parter is not EEE capable, or its
          support for EEE is disabled.

          The {{enum|Unsupported}} value indicates that this physical interface
          does not support EEE. In which case {{param|EEECapability}} will be
          {{false}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Active"/>
            <enumeration value="Inactive"/>
            <enumeration value="Unsupported"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="EDPDCapability" access="readOnly" version="2.19">
        <description>
          Indicates whether this physical ethernet port supports Energy Detect
          Power Down (EDPD).

          Implementations of this feature are vendor specific, Energy Detect
          Power Down is not part of the 802.3-2015 standard.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="EDPDEnable" access="readWrite" version="2.19">
        <description>
          Indicates whether Energy Detect Power Down (EDPD) support is
          currently enabled. When enabled, depending on the type of hardware,
          either the transmit power is disabled or the link impulses are sent
          at a greater interval.

          Implementations of this feature are vendor specific, Energy Detect
          Power Down is not part of the 802.3-2015 standard.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="EDPDStatus" access="readOnly" version="2.19">
        <description>
          Indicates the active state of Energy Detect Power Down (EDPD).

          Implementations of this feature are vendor specific, Energy Detect
          Power Down is not part of the 802.3-2015 standard.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled">
              <description>Indictes that EDPD is disabled.</description>
            </enumeration>
            <enumeration value="Enabled">
              <description>
                Indicates that {{param|EDPDEnable}} is enabled and supported by
                the physical interface. In this state EDPD will be used.
              </description>
            </enumeration>
            <enumeration value="Unsupported">
              <description>
                Indicates that this physical interface does not support EDPD.
                In which case {{param|EDPDCapability}} will be {{false}}.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="MDIX" access="readWrite" version="2.18">
        <description>
          Configure the Medium Dependent Interface crossover functionality on
          the interface.
        </description>
        <syntax>
          <string>
            <enumeration value="Auto"/>
            <enumeration value="On"/>
            <enumeration value="Off"/>
          </string>
          <default type="factory" value="Auto"/>
        </syntax>
      </parameter>

      <parameter name="CurrentMDIX" access="readOnly" version="2.18">
        <description>
          The current Medium Dependent Interface crossover setting in use on
          the interface.
        </description>
        <syntax>
          <string>
            <enumeration value="Unsupported"/>
            <enumeration value="Unknown"/>
            <enumeration value="On"/>
            <enumeration value="Off"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SFPReferenceList" access="readOnly" version="2.19">
        <description>
          Small-form Factor Pluggable (SFP) entries associated with this
          interface.
        </description>
        <syntax>
          <list/>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="##.SFPs.SFPCage."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Ethernet.Interface.{i}.Stats." minEntries="1"
        maxEntries="1" version="2.0">
      <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="Reset" access="readWrite" version="2.18">
        <description>
          Set this to {{true}} to reset all this object's statistics counters
          to zero.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BytesSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface,
          including framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface, including
          framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} that could not be transmitted
          because of errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} that contained errors
          preventing them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="ErrorsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="DiscardPacketsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were not addressed to a multicast or broadcast
          address at this layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a multicast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a broadcast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnknownProtoPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received via the interface which were
          discarded because of an unknown or unsupported protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="Collisions" access="readOnly" activeNotify="canDeny"
          version="2.18">
        <description>
          The total number of collisions on the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Ethernet.Link.{i}." access="readWrite"
        numEntriesParameter="LinkNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.0">
      <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 functional="true">
        <parameter ref="MACAddress"/>
      </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">
        <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" version="2.0">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name">
        <description>
          The textual name of the interface as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" 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="MTU" access="readWrite" version="2.18"
          dmr:previousParameter="LowerLayers">
        <description>
          Maximum Transmission Unit for this interface (expressed in
          {{units}}).
        </description>
        <syntax>
          <unsignedInt>
            <units value="bytes"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MACAddress" access="readWrite">
        <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}} or
          {{param|##.QoS.Classification.{i}.InnerEthernetPriorityMark}}.

          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>

      <parameter name="FlowControl" access="readWrite" version="2.14">
        <description>
          Configures Flow Control on given Ethernet port. When set to {{true}},
          it activates the exchange of pause-resume flow control frames.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="NoARP" access="readWrite" version="2.18">
        <description>
          Disables or enables sending of ARP messages on the Ethernet link. If
          {{true}}, the kernel will not send ARP requests and won't send ARP
          replies.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Ethernet.Link.{i}.Stats." minEntries="1"
        maxEntries="1" version="2.0">
      <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="Reset" access="readWrite" version="2.18">
        <description>
          Set this to {{true}} to reset all this object's statistics counters
          to zero.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BytesSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface,
          including framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface, including
          framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} that could not be transmitted
          because of errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} that contained errors
          preventing them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="ErrorsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="DiscardPacketsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were not addressed to a multicast or broadcast
          address at this layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a multicast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a broadcast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnknownProtoPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received via the interface which were
          discarded because of an unknown or unsupported protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PausePacketsSent" access="readOnly"
          activeNotify="canDeny" version="2.18">
        <description>
          The total number of Ethernet pause frames sent on the link.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="PausePacketsReceived" access="readOnly"
          activeNotify="canDeny" version="2.18">
        <description>
          The total number of Ethernet pause frames received on the link.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Ethernet.VLANTermination.{i}." access="readWrite"
        numEntriesParameter="VLANTerminationNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded"
        version="2.0">
      <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 interface.

          This parameter is based on ''ifAdminStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Status">
        <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" version="2.0">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name">
        <description>
          The textual name of the interface as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" 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="VLANID" access="readWrite">
        <description>
          The VLAN ID for this {{object}} entry (as defined in
          {{bibref|802.1Q-2011}}). 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>

      <parameter name="VLANPriority" access="readWrite" version="2.18">
        <description>
          The VLAN Priority for this {{object}} entry, also known as 802.1p
          Priority, is a 3-bit field used to indicate the priority of network
          traffic within a VLAN.

          A value of ''-1'' indicates that the VLAN priority should not be
          changed for this {{object}}.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="7"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="TPID" access="readWrite" version="2.7">
        <description>
          The Tag Protocol Identifier (TPID) assigned to this {{object}}. The
          TPID is an EtherType value used to identify the frame as a tagged
          frame.

          Standard {{bibref|802.1Q-2011|Table 9.1}} TPID values are:

          *S-TAG 0x88A8 = 34984

          *C-TAG 0x8100 = 33024

          Non-Standard TPID values are:

          *S-TAG 0x9100 = 37120
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="33024"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Ethernet.VLANTermination.{i}.Stats." minEntries="1"
        maxEntries="1" version="2.0">
      <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="Reset" access="readWrite" version="2.18">
        <description>
          Set this to {{true}} to reset all this object's statistics counters
          to zero.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BytesSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface,
          including framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface, including
          framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} that could not be transmitted
          because of errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} that contained errors
          preventing them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="ErrorsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="DiscardPacketsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were not addressed to a multicast or broadcast
          address at this layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a multicast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a broadcast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnknownProtoPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received via the interface which were
          discarded because of an unknown or unsupported protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Ethernet.LAG.{i}." access="readWrite"
        numEntriesParameter="LAGNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.12">
      <description>
        Ethernet Link Aggregation Group (LAG) table (a stackable interface
        object as described in {{bibref|TR-181i2|Section 4.2}}). Table entries
        model the Link Aggregation Sub-Layer as defined in
        {{bibref|802.3-2015}} and {{bibref|802.1AX-2014}}. It is expected that
        a {{object}} interface can only be stacked above {{object|#.Interface}}
        interfaces. The CPE can reject creation of additional LAG instances if
        this would exceed its capabilities.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Name"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="MACAddress"/>
      </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">
        <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" version="2.12">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name">
        <description>
          The textual name of the interface as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" 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 reference to Device.Ethernet.Interface instances where
          Link Aggregation Group is configured by the CPE.

          For example, "Device.Ethernet.Interface.1,
          Device.Ethernet.Interface.2"
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string>
            <pathRef refType="strong" targetType="row"/>
          </string>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>

      <parameter name="MACAddress" access="readWrite">
        <description>
          MAC address of the Link Aggregation Interface.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Ethernet.LAG.{i}.Stats." minEntries="1"
        maxEntries="1" version="2.12">
      <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="Reset" access="readWrite" version="2.18">
        <description>
          Set this to {{true}} to reset all this object's statistics counters
          to zero.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BytesSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface,
          including framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface, including
          framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} that could not be transmitted
          because of errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} that contained errors
          preventing them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="ErrorsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="DiscardPacketsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were not addressed to a multicast or broadcast
          address at this layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a multicast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a broadcast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnknownProtoPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received via the interface which were
          discarded because of an unknown or unsupported protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Ethernet.RMONStats.{i}." access="readWrite"
        numEntriesParameter="RMONStatsNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.4">
      <description>
        Ethernet statistics based on the {{bibref|RFC2819}} ''RMON-MIB''
        ''etherStatsTable'', with some extensions inspired by
        {{bibref|G.988|Section 9.3.32}}.

        Each instance is associated with an interface capable of transporting
        Ethernet-encapsulated packets, and contains a set of unidirectional
        Ethernet statistics.

        The statistics are sampled either on ingress or on egress. This is
        determined as follows:

        * If the instance is associated with an egress queue (or queues) via
          the {{param|Queue}} parameter or by setting {{param|AllQueues}} to
          {{true}} then data is sampled on egress. In this case {{param|Bytes}}
          etc measure the data that has been sent on the interface, possibly
          filtered by {{param|Queue}} or {{param|VLANID}}.

        * Otherwise data is sampled on ingress. In this case {{param|Bytes}}
          etc measure the data that has been received on the interface,
          possibly filtered by {{param|VLANID}}.

        When sampling on egress, the term ''received'' means ''received by the
        queuing sub-system''.

        Multiple instances can be associated with a single interface:
        individual instances can be configured to collect data associated with
        the entire interface, or with a particular VLAN and/or queue.

        The CPE MUST reset each instances's Stats parameters whenever the
        instance is disabled and re-enabled. Whether this reset occurs when the
        instance becomes operationally disabled ({{param|Status}} =
        {{enum|Disabled|Status}}) or administratively enabled ({{param|Enable}}
        = {{true}}) is a local matter to the CPE. This is similar to the
        behavior of interface statistics, e.g. as specified for
        {{object|#.Interface.{i}.Stats}}. Furthermore, this instance's Stats
        parameters MUST be reset whenever the referenced interface's Stats
        parameters are reset, or when the referenced queue or VLAN is disabled
        and re-enabled.

        For enabled table entries, if {{param|Interface}} references an
        interface that is not capable of transporting Ethernet-encapsulated
        packets, or if {{param|Queue}} references a queue that is not
        instantiated on {{param|Interface}}, or if {{param|Queue}} is not a
        valid reference and {{param|AllQueues}} is {{false}}, the table entry
        is inoperable and the CPE MUST set {{param|Status}} to
        {{enum|Error_Misconfigured|Status}}.

        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 set {{param|Status}} to {{enum|Error_Misconfigured|Status}} and
        disable the offending {{object}} row.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="Interface"/>
        <parameter ref="VLANID"/>
        <parameter ref="Queue"/>
      </uniqueKey>

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

      <parameter name="Status" access="readOnly">
        <description>
          The status of this instance. {{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" version="2.4">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name" access="readOnly">
        <description>
          The textual name of the {{object}} entry as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite">
        <description>
          The interface associated with this instance. {{reference|an interface
          that is capable of transporting Ethernet-encapsulated packets}}

          The term "capable of transporting Ethernet-encapsulated packets"
          means "has an Ethernet header" and therefore refers to any interface
          that is at or below an ''Ethernet''.{{object|#.Link}} instance in the
          interface stack.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="VLANID" access="readWrite">
        <description>
          Filter criterion.

          The VLAN ID for which statistics are to be collected.

          A zero value indicates that all packets, whether or not they have a
          VLAN header, will be considered.

          A non-zero value indicates that only packets that have the the
          specified VLAN ID will be considered.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="4094"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="Queue" access="readWrite">
        <description>
          Filter criterion.

          The egress queue with which this instance is associated.

          Only packets that are sent to the referenced queue will be
          considered.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="##.QoS.Queue."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="AllQueues" access="readWrite">
        <description>
          Indicates whether this instance applies to all queues. If {{true}},
          the value of {{param|Queue}} is ignored since all egress queues are
          indicated.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="DropEvents" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of events in which packets were dropped due to lack
          of resources. Note that this number is not necessarily the number of
          packets dropped; it is just the number of times this condition has
          been detected.

          This parameter is based on ''etherStatsDropEvents'' from
          {{bibref|RFC2819}}.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="Bytes" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of {{units}} (including those in bad packets)
          received (excluding framing bits but including FCS bytes).

          This parameter is based on ''etherStatsOctets'' from
          {{bibref|RFC2819}}.
        </description>
        <syntax>
          <unsignedLong>
            <units value="bytes"/>
          </unsignedLong>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="Packets" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of {{units}} (including bad packets, broadcast
          packets, and multicast packets) received.

          This parameter is based on ''etherStatsPkts'' from
          {{bibref|RFC2819}}.
        </description>
        <syntax>
          <unsignedLong>
            <units value="packets"/>
          </unsignedLong>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="BroadcastPackets" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of good {{units}} received that were directed to the
          broadcast address. Note that this does not include multicast packets.

          This parameter is based on ''etherStatsBroadcastPkts'' from
          {{bibref|RFC2819}}.
        </description>
        <syntax>
          <unsignedLong>
            <units value="packets"/>
          </unsignedLong>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="MulticastPackets" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of good {{units}} received that were directed to a
          multicast address. Note that this number does not include packets
          directed to the broadcast address.

          This parameter is based on ''etherStatsMulticastPkts'' from
          {{bibref|RFC2819}}.
        </description>
        <syntax>
          <unsignedLong>
            <units value="packets"/>
          </unsignedLong>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="CRCErroredPackets" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of {{units}} received that had a length (excluding
          framing bits, but including FCS bytes) of between 64 and 1518 bytes,
          inclusive, but had either a bad Frame Check Sequence (FCS) with an
          integral number of bytes (FCS Error) or a bad FCS with a non-integral
          number of bytes (Alignment Error).

          This parameter is based on ''etherStatsCRCAlignErrors'' from
          {{bibref|RFC2819}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="packets"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="UndersizePackets" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of {{units}} received that were less than 64 bytes
          long (excluding framing bits, but including FCS bytes) and were
          otherwise well formed.

          This parameter is based on ''etherStatsUndersizePkts'' from
          {{bibref|RFC2819}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="packets"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="OversizePackets" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of {{units}} received that were longer than 1518
          bytes (excluding framing bits, but including FCS bytes) and were
          otherwise well formed.

          This parameter is based on ''etherStatsOversizePkts'' from
          {{bibref|RFC2819}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="packets"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="Packets64Bytes" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of {{units}} (including bad packets) received that
          were 64 bytes in length (excluding framing bits but including FCS
          bytes).

          This parameter is based on ''etherStatsPkts64Octets'' from
          {{bibref|RFC2819}}.
        </description>
        <syntax>
          <unsignedLong>
            <units value="packets"/>
          </unsignedLong>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="Packets65to127Bytes" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of {{units}} (including bad packets) received that
          were between 65 and 127 bytes in length inclusive (excluding framing
          bits but including FCS bytes).

          This parameter is based on ''etherStatsPkts65to127Octets'' from
          {{bibref|RFC2819}}.
        </description>
        <syntax>
          <unsignedLong>
            <units value="packets"/>
          </unsignedLong>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="Packets128to255Bytes" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of {{units}} (including bad packets) received that
          were between 128 and 255 bytes in length inclusive (excluding framing
          bits but including FCS bytes).

          This parameter is based on ''etherStatsPkts6128to255Octets'' from
          {{bibref|RFC2819}}.
        </description>
        <syntax>
          <unsignedLong>
            <units value="packets"/>
          </unsignedLong>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="Packets256to511Bytes" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of {{units}} (including bad packets) received that
          were between 256 and 511 bytes in length inclusive (excluding framing
          bits but including FCS bytes).

          This parameter is based on ''etherStatsPkts256to511Octets'' from
          {{bibref|RFC2819}}.
        </description>
        <syntax>
          <unsignedLong>
            <units value="packets"/>
          </unsignedLong>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="Packets512to1023Bytes" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of {{units}} (including bad packets) received that
          were between 512 and 1023 bytes in length inclusive (excluding
          framing bits but including FCS bytes).

          This parameter is based on ''etherStatsPkts512to1023Octets'' from
          {{bibref|RFC2819}}.
        </description>
        <syntax>
          <unsignedLong>
            <units value="packets"/>
          </unsignedLong>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="Packets1024to1518Bytes" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of {{units}} (including bad packets) received that
          were between 1024 and 1518 bytes in length inclusive (excluding
          framing bits but including FCS bytes).

          This parameter is based on ''etherStatsPkts1024to1518Octets'' from
          {{bibref|RFC2819}}.
        </description>
        <syntax>
          <unsignedLong>
            <units value="packets"/>
          </unsignedLong>
          <default type="object" value="0"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Ethernet.WoL." access="readOnly" minEntries="1"
        maxEntries="1" version="2.13">
      <description>
        This object provides access to the WoL (Wake on LAN) functionality.
      </description>

      <parameter name="SendMagicPacket" access="readWrite">
        <description>
          When set to {{true}}, the CPE must send a magic packet over its
          active Ethernet interfaces.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MACAddress" access="readWrite" version="2.13">
        <description>
          MAC address target of the magic packet.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="Password" access="readWrite" version="2.13">
        <description>
          The SecureOn password. The parameter value can be empty or, if
          present, can contain either 4 bytes or 6 bytes.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.USB." access="readOnly" minEntries="1" maxEntries="1"
        version="2.0">
      <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">
        <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}."
        numEntriesParameter="InterfaceNumberOfEntries" minEntries="0"
        maxEntries="unbounded" dmr:fixedObject="true" version="2.0">
      <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">
        <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}}.

          Because the interface includes layer 1, the {{enum|LowerLayerDown}}
          value SHOULD never be used.
        </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" version="2.0">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name">
        <description>
          The textual name of the interface as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" 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">
        <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">
        <description>
          The maximum upstream and downstream PHY bit rate supported by this
          interface (expressed in {{units}}).
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mbps"/>
          </unsignedInt>
        </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="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." minEntries="1"
        maxEntries="1" version="2.0">
      <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="Reset" access="readWrite" version="2.19">
        <description>
          Set this to {{true}} to reset all this object's statistics counters
          to zero.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BytesSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface,
          including framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface, including
          framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} that could not be transmitted
          because of errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} that contained errors
          preventing them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="ErrorsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="DiscardPacketsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were not addressed to a multicast or broadcast
          address at this layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a multicast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a broadcast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnknownProtoPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received via the interface which were
          discarded because of an unknown or unsupported protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>
    </object>

    <object name="Device.USB.Port.{i}." access="readOnly"
        numEntriesParameter="PortNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.0">
      <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 functional="true">
        <parameter ref="Name"/>
      </uniqueKey>

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

      <parameter name="Name" access="readOnly">
        <description>
          The textual name of the port.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

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

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

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

      <parameter name="Rate" access="readOnly">
        <description>
          Current speed of the USB connection. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="Low">
              <description>
                1.5 Mbits/sec (187.5 KB/sec) defined in {{bibref|USB1.0}}
              </description>
            </enumeration>
            <enumeration value="Full">
              <description>
                12 Mbits/sec (1.5 MB/sec) defined in {{bibref|USB1.0}}
              </description>
            </enumeration>
            <enumeration value="High">
              <description>
                480 Mbits/sec (60 MB/sec) defined in {{bibref|USB2.0}}
              </description>
            </enumeration>
            <enumeration value="Super">
              <description>
                5.0 Gbits/sec (625 MB/sec) defined in {{bibref|USB3.0}}
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="Power" access="readOnly">
        <description>
          Power configuration of the USB connection. {{enum}}

          Only applies when {{param|Type}} is {{enum|Device|Type}}. In other
          cases value is {{enum|Unknown}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Self"/>
            <enumeration value="Bus"/>
            <enumeration value="Unknown"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.USB.USBHosts." access="readOnly" minEntries="1"
        maxEntries="1" version="2.0">
      <description>
        This object models the CPE's USB Host controllers.

        See {{bibref|TR-181i2|Appendix XVII}} for Theory of Operation.
      </description>

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

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

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

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

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

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

      <parameter name="Reset" access="readWrite" dmr:previousParameter="Type">
        <description>
          When set to {{true}}, reset the Host Controller and apply the reset
          signaling (see {{bibref|USB2.0|Chapter 7.1.7.5}}) to all of the Host
          Controller Hub downstream ports.

          The value is not saved in the device's state and setting it to
          {{false}} has no effect.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>

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

          When set to {{false}} {{param}} immediately disables the Host
          controller Power Management policy.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

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

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

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

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

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

      <parameter name="DeviceClass" access="readOnly">
        <description>
          Class Code as assigned by USB-IF.

          When 0x00, each device specifies its own class code. When 0xFF, the
          class code is vendor specified.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="1"/>
          </hexBinary>
        </syntax>
      </parameter>

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

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

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

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

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

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

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

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

      <parameter name="Port" access="readOnly">
        <description>
          Hub port on parent device.

          0 when no parent.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="USBPort" access="readOnly">
        <description>
          {{reference}} This is a reference to the USB host device to which
          this (external) USB device is connected.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="###.Port."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Rate" access="readOnly">
        <description>
          Speed of the USB device. {{enum}}

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

      <parameter name="Parent" access="readOnly">
        <description>
          {{reference}} This is a reference to the parent USB device (e.g. hub
          device).

          This is {{empty}} for a device connected to the Host controller (root
          hub).
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="#.Device."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

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

      <parameter name="IsSuspended" access="readOnly">
        <description>
          When {{true}} the associated Device is in a suspended (i.e.
          low-power) state (see {{bibref|USB2.0|Chapter 11.9}}).

          When {{false}} the associated Device is in any of the other states
          specified by the USB 2.0 Device State Machine (see
          {{bibref|USB2.0|Chapter 9.1.1}}).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="IsSelfPowered" access="readOnly">
        <description>
          When {{true}} the associated device is at least partly powered by a
          local source (see {{bibref|USB2.0|Chapter 9.4.5}}).

          When {{false}} the associated device draws all the current it needs
          from the USB bus.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

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

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

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

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

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

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

      <parameter name="InterfaceClass" access="readOnly">
        <description>
          Class Code as assigned by USB-IF.

          When 0x00, each interface specifies its own class code. When 0xFF,
          the class code is vendor specified.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="1"/>
          </hexBinary>
        </syntax>
      </parameter>

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

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

    <object name="Device.HPNA." access="readOnly" minEntries="1"
        maxEntries="1" version="2.0">
      <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">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.HPNA.Interface.{i}."
        numEntriesParameter="InterfaceNumberOfEntries" minEntries="0"
        maxEntries="unbounded" dmr:fixedObject="true" version="2.0">
      <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">
        <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}}.

          Because the interface includes layer 1, the {{enum|LowerLayerDown}}
          value SHOULD never be used.
        </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" version="2.0">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name">
        <description>
          The textual name of the interface as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" 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">
        <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">
        <description>
          The maximum upstream and downstream PHY bit rate supported by this
          interface (expressed in {{units}}).
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mbps"/>
          </unsignedInt>
        </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="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." minEntries="1"
        maxEntries="1" version="2.0">
      <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="Reset" access="readWrite" version="2.19">
        <description>
          Set this to {{true}} to reset all this object's statistics counters
          to zero.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BytesSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface,
          including framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface, including
          framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} that could not be transmitted
          because of errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} that contained errors
          preventing them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="ErrorsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="DiscardPacketsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were not addressed to a multicast or broadcast
          address at this layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a multicast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a broadcast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnknownProtoPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received via the interface which were
          discarded because of an unknown or unsupported protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>
    </object>

    <object name="Device.HPNA.Interface.{i}.QoS." access="readOnly"
        minEntries="1" maxEntries="1" version="2.0">
      <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"
        version="2.0">
      <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" version="2.0">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </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" version="2.0">
      <description>
        This table provides information about other HPNA devices that are
        directly accessible via this HPNA interface.
      </description>
      <uniqueKey functional="true">
        <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" version="2.0">
      <description>
        The HPNA Diagnostics object.
      </description>
    </object>

    <object name="Device.HPNA.Diagnostics.PHYThroughput." access="readOnly"
        minEntries="1" maxEntries="1" version="2.0">
      <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>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="DiagnosticsState">
            <enumeration value="None" access="readOnly"/>
            <enumeration value="Requested"/>
            <enumeration value="Canceled" optional="true"/>
            <enumeration value="Complete" access="readOnly"/>
            <enumeration value="Error" access="readOnly" optional="true"/>
            <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"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite" version="2.0">
        <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" version="2.0">
        <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" version="2.0">
        <description>
          Test packet burst interval length (expressed in {{units}}).
        </description>
        <syntax>
          <unsignedInt>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

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

      <parameter name="PayloadEncoding" access="readWrite" version="2.0">
        <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" version="2.0">
        <description>
          Test packets payload data generator value.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PayloadType" access="readWrite" version="2.0">
        <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" version="2.0">
        <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" version="2.0">
      <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 functional="true">
        <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" version="2.0">
      <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>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="DiagnosticsState">
            <enumeration value="None" access="readOnly"/>
            <enumeration value="Requested"/>
            <enumeration value="Canceled" optional="true"/>
            <enumeration value="Complete" access="readOnly"/>
            <enumeration value="Error" access="readOnly" optional="true"/>
            <enumeration value="Error_SampleIntervalTooSmall"
                access="readOnly"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite" version="2.0">
        <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" version="2.0">
        <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" version="2.0">
      <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" version="2.0">
      <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 functional="true">
        <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" version="2.0">
      <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" version="2.0">
      <description>
        Per-channel HPNA performance monitoring results.
      </description>
      <uniqueKey functional="true">
        <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" version="2.0">
      <description>
        MoCA object that contains the {{object|Interface}} table
        {{bibref|MoCAv1.0}} {{bibref|MoCAv1.1}}.
      </description>

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

    <object name="Device.MoCA.Interface.{i}."
        numEntriesParameter="InterfaceNumberOfEntries" minEntries="0"
        maxEntries="unbounded" dmr:fixedObject="true" version="2.0"
        access="readOnly">
      <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"
          id="mocaIfEnable/1.3.6.1.4.1.31621.1.2.1.1.1.1">
        <description>
          Enables or disables the interface.

          This parameter is based on ''ifAdminStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <boolean/>
          <default type="factory" value="true"/>
        </syntax>
      </parameter>

      <parameter name="Status" id="mocaIfStatus/1.3.6.1.4.1.31621.1.2.1.7.1.1">
        <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}}.

          Because the interface includes layer 1, the {{enum|LowerLayerDown}}
          value SHOULD never be used.
        </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" version="2.0">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name" id="mocaIfName/1.3.6.1.4.1.31621.1.2.1.7.1.8">
        <description>
          The textual name of the interface as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" activeNotify="canDeny"
          id="mocaIfStatus/1.3.6.1.4.1.31621.1.2.1.7.1.1">
        <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">
        <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">
        <description>
          The maximum upstream and downstream PHY bit rate supported by this
          interface (expressed in {{units}}).

          This parameter MUST NOT be implemented for MoCA 2.0 because it
          doesn't map to a MIB object.
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="AccessControlNumberOfEntries" access="readOnly"
          version="2.17">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="RlapmNumberOfEntries" access="readOnly" version="2.17">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SapmNumberOfEntries" access="readOnly" version="2.17">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MeshNumberOfEntries" access="readOnly" version="2.17">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="BridgeNumberOfEntries" access="readOnly" version="2.17">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MeshScModNumberOfEntries" access="readOnly"
          version="2.17">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MACAddress" access="readOnly"
          id="mocaIfMacAddress/1.3.6.1.4.1.31621.1.2.1.7.1.6">
        <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"
          id="mocaIfSoftwareVersion/1.3.6.1.4.1.31621.1.2.1.7.1.3">
        <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="MaxIngressBW" access="readOnly"
          id="mocaIfMaxIngressNodeThroughput/1.3.6.1.4.1.31621.1.2.1.7.1.18">
        <description>
          The maximum bandwidth of this interface for flows onto the MoCA
          network.

          This parameter is based on ''mocaIfMaxIngressNodeBw'' from
          {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <dataType ref="MocaMacRate"/>
        </syntax>
      </parameter>

      <parameter name="MaxEgressBW" access="readOnly"
          id="mocaIfMaxEgressNodeThroughput/1.3.6.1.4.1.31621.1.2.1.7.1.19">
        <description>
          The maximum bandwidth of this interface for flows from the MoCA
          network.

          This parameter is based on ''mocaIfMaxEgressNodeBw'' from
          {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <dataType ref="MocaMacRate"/>
        </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"
          id="mocaIfNetworkVersion/1.3.6.1.4.1.31621.1.2.1.7.1.5">
        <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"
          id="mocaIfNC/1.3.6.1.4.1.31621.1.2.1.7.1.10">
        <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>
          <dataType ref="MocaNodeID"/>
        </syntax>
      </parameter>

      <parameter name="NodeID" access="readOnly"
          id="mocaIfNodeID/1.3.6.1.4.1.31621.1.2.1.7.1.7">
        <description>
          The Node ID of this interface.

          This parameter is based on ''mocaIfNodeID'' from
          {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <dataType ref="MocaNodeID"/>
        </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).

          This parameter MUST NOT be implemented for MoCA 2.0 because it
          doesn't map to a MIB object.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="NumNodes" access="readOnly"
          id="mocaIfNumNodes/1.3.6.1.4.1.31621.1.2.1.7.1.9" version="2.17">
        <description>
          The numbers of 1's in the GCD_BITMASK field reported in Type I Probe
          Reports. This value corresponds to the number of MoCA Nodes that this
          MoCA Node communicates to in the MoCA network.

          This value may be smaller than the number of MoCA Nodes reported by
          the NC Node.

          See {{bibref|MoCAv1.1|Section 3.6.3.2}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="16"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="PreferredNC" access="readWrite"
          id="mocaIfPreferredNC/1.3.6.1.4.1.31621.1.2.1.1.1.9">
        <description>
          Whether this interface is a preferred Network Coordinator (NC).

          This parameter is based on ''mocaIfPreferredNC'' from
          {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <boolean/>
          <default type="factory" value="false"/>
        </syntax>
      </parameter>

      <parameter name="BackupNC" access="readOnly"
          id="mocaIfBackupNC/1.3.6.1.4.1.31621.1.2.1.7.1.11">
        <description>
          The Node ID of the backup Network Coordinator node.

          This parameter is based on ''mocaIfBackupNC'' from
          {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <dataType ref="MocaNodeID"/>
        </syntax>
      </parameter>

      <parameter name="PrivacyEnabledSetting" access="readWrite"
          id="mocaIfPrivacyEnable/1.3.6.1.4.1.31621.1.2.1.1.1.7">
        <description>
          The configured privacy mode. This indicates whether link-layer
          security is enabled ({{true}}) or disabled ({{false}}) for network
          admission.
        </description>
        <syntax>
          <boolean/>
          <default type="factory" value="false"/>
        </syntax>
      </parameter>

      <parameter name="PrivacyEnabled" access="readOnly" status="obsoleted"
          id="mocaIfPrivacyEnable/1.3.6.1.4.1.31621.1.2.1.1.1.7">
        <description>
          Indicates whether link-layer security is enabled or disabled.

          This parameter is based on ''mocaIfPrivacyEnable'' from
          {{bibref|MOCA11-MIB}}.

          {{deprecated|2.17|because it and {{param|PrivacyEnabledSetting}} are
          associated with the same underlying MIB object and it is therefore
          unnecessary. If implemented, it MUST return the same value as
          {{param|PrivacyEnabledSetting}}}}

          {{obsoleted|2.19}}
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="AccessControlEnable" access="readWrite"
          id="mocaIfAccessEnable/1.3.6.1.4.1.31621.1.2.1.1.1.10" version="2.17">
        <description>
          Enable MAC address access control on the MoCA interface if this value
          is {{true}}. Disable MAC address access control on the MoCA interface
          if this value is {{false}}.

          Access control applies to subsequent MoCA Node admission.
        </description>
        <syntax>
          <boolean/>
          <default type="factory" value="false"/>
        </syntax>
      </parameter>

      <parameter name="PhyThreshold" access="readWrite"
          id="mocaIfPhyThreshold/1.3.6.1.4.1.31621.1.2.1.1.1.11" version="2.17"
          dmr:previousParameter="PacketAggregationCapability">
        <description>
          The minimum PHY rate.

          If transmit PHY rate between all pairs of MoCA Nodes are greater than
          or equal to this value, and subsequently the transmit PHY rate of one
          pair of MoCA Nodes is less than this value, send
          {{param|BelowPhyThresholdTrap}} if {{param|PhyThresholdTrapEnable}}
          is {{true}}.

          If transmit PHY rate between one or more pairs of MoCA Nodes are less
          than this value, and subsequently the transmit PHY rate between all
          pairs of MoCA Nodes are greater than or equal to this value, send
          {{param|AbovePhyThresholdTrap}} if {{param|PhyThresholdTrapEnable}}
          is {{true}}.

          See {{bibref|MoCAv2.0|Section 3, Unusable Link definition}}.
        </description>
        <syntax>
          <dataType ref="MocaPhyRate"/>
          <default type="factory" value="123"/>
        </syntax>
      </parameter>

      <parameter name="PhyThresholdTrapEnable" access="readWrite"
          id="mocaIfPhyThresholdEnable/1.3.6.1.4.1.31621.1.2.1.1.1.12"
          version="2.17">
        <description>
          If transmit PHY rate between all pairs of MoCA Nodes are greater than
          or equal to {{param|PhyThreshold}}, and subsequently the transmit PHY
          rate of one pair of MoCA Node is less than {{param|PhyThreshold}},
          send {{param|BelowPhyThresholdTrap}} if this value is {{true}}, do
          not send {{param|BelowPhyThresholdTrap}} if this value is {{false}}.

          If transmit PHY rate between one or more pairs of MoCA Nodes are less
          than {{param|PhyThreshold}}, and subsequently the transmit PHY rate
          between all pairs of MoCA Nodes are greater than or equal to
          {{param|PhyThreshold}}, send {{param|AbovePhyThresholdTrap}} if this
          value is {{true}}, do not send {{param|AbovePhyThresholdTrap}} if
          this value is {{false}}.

          Only one MoCA Node in the MoCA network should set {{param}} to
          {{true}}.

          Only one MoCA Node in the MoCA network should set {{param}} to
          {{true}}.
        </description>
        <syntax>
          <boolean/>
          <default type="factory" value="false"/>
        </syntax>
      </parameter>

      <parameter name="StatusChangeEnable" access="readWrite"
          id="mocaIfStatusChangeEnable/1.3.6.1.4.1.31621.1.2.1.1.1.13"
          version="2.17">
        <description>
          If {{param}} is {{true}} and {{param|Status}} changes, then the trap
          {{param|StatusChangeTrap}} is sent.
        </description>
        <syntax>
          <boolean/>
          <default type="factory" value="false"/>
        </syntax>
      </parameter>

      <parameter name="NumNodesChangeEnable" access="readWrite"
          id="mocaIfNumNodesChangeEnable/1.3.6.1.4.1.31621.1.2.1.1.1.14"
          version="2.17">
        <description>
          If {{param}} is {{true}} and {{param|NumNodes}} changes, then the
          trap {{param|NumNodesChangeTrap}} is sent.

          Only one MoCA Node in the MoCA network should set {{param}} to
          {{true}}.
        </description>
        <syntax>
          <boolean/>
          <default type="factory" value="false"/>
        </syntax>
      </parameter>

      <parameter name="TpcTargetRateNper" access="readWrite"
          id="mocaIfTpcTargetRateNper/1.3.6.1.4.1.31621.1.2.1.1.1.15"
          version="2.17">
        <description>
          The Target PHY Rate of the receiving MoCA 2.0 Node in order to
          optimize the long-term PHY rate and transmit power level between the
          transmitting and receiving MoCA Nodes when TPC is enabled and PERMODE
          = NPER.
        </description>
        <syntax>
          <dataType ref="MocaPhyRate"/>
        </syntax>
      </parameter>

      <parameter name="Band" access="readWrite"
          id="mocaIfBand/1.3.6.1.4.1.31621.1.2.1.1.1.16" version="2.17">
        <description>
          Configure the band or sub-band for the MoCA Node to operate in (BND
          Managed Parameter). See {{bibref|MoCAv2.0|section 15}}.
        </description>
        <syntax>
          <dataType ref="MocaBand"/>
        </syntax>
      </parameter>

      <parameter name="LastOperFreqUpdateEnable" access="readWrite"
          id="mocaIfLofUpdateEnable/1.3.6.1.4.1.31621.1.2.1.1.1.17"
          version="2.17">
        <description>
          Controls whether the LOF is updated when joining a network
          (LOF_UPDATE_EN Managed Parameter). See {{bibref|MoCAv2.0|section
          8.1.1, and Table 17-1}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="FreqCapabilityMask" access="readOnly"
          id="mocaIfChannelSupport/1.3.6.1.4.1.31621.1.2.1.7.1.22">
        <description>
          The frequencies that the interface supports. {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="MocaChannelMask"/>
        </syntax>
      </parameter>

      <parameter name="FreqCurrentMaskSetting" access="readWrite"
          id="mocaIfChannelMask/1.3.6.1.4.1.31621.1.2.1.1.1.2">
        <description>
          The enabled frequencies that the interface supports for network
          admission.

          {{datatype|expand}}

          The configured frequencies might not match the current operational
          state ({{param|FreqCurrentMask}}), since this setting is only applied
          during network formation or admission.
        </description>
        <syntax>
          <dataType ref="MocaChannelMask"/>
        </syntax>
      </parameter>

      <parameter name="FreqCurrentMask" access="readOnly"
          id="mocaIfChannelSupport/1.3.6.1.4.1.31621.1.2.1.7.1.22">
        <description>
          The frequencies that can be used. This is a subset of the
          {{param|FreqCapabilityMask}} frequencies.

          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="MocaChannelMask"/>
        </syntax>
      </parameter>

      <parameter name="CurrentOperFreq" access="readOnly"
          id="mocaIfRFChannel/1.3.6.1.4.1.31621.1.2.1.7.1.12">
        <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="readWrite"
          id="mocaIfLof/1.3.6.1.4.1.31621.1.2.1.1.1.18">
        <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}}.

          (LOF Managed Parameter)

          This parameter is writable only for MoCA 2.0.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="TpcEnable" access="readWrite"
          id="mocaIfTpcEnable/1.3.6.1.4.1.31621.1.2.1.1.1.3" version="2.17">
        <description>
          Enable automatic power control if this value is {{true}}. Use a fixed
          transmit power level if this value is {{false}}.

          (TPC_EN Managed Parameter)
        </description>
        <syntax>
          <boolean/>
          <default type="factory" value="true"/>
        </syntax>
      </parameter>

      <parameter name="KeyPassphrase" access="readWrite"
          id="mocaIfPassword/1.3.6.1.4.1.31621.1.2.1.1.1.8">
        <description>
          MoCA Password. The value consists of numeric characters (0-9).
          {{pattern}}

          This parameter is based on ''mocaIfPassword'' from
          {{bibref|MOCA11-MIB}}.
        </description>
        <syntax secured="true">
          <string>
            <size minLength="12" maxLength="17"/>
            <pattern value="\d+"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="PerMode" access="readWrite"
          id="mocaIfPerMode/1.3.6.1.4.1.31621.1.2.1.1.1.20" version="2.17">
        <description>
          Controls which transmission PER mode the MoCA Node uses for MPDUs not
          belonging to PQoS Flows, where a value of 0 indicates NPER and 1
          indicates VLPER. By default PER mode is set to 1 in band E, while it
          is set to 0 for all other bands (PER_MODE Managed Parameter).

          See {{bibref|MoCAv2.0|section 8.2 and Table 17-2}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="TurboModeEnable" access="readWrite"
          id="mocaIfTurboModeEnable/1.3.6.1.4.1.31621.1.2.1.1.1.21"
          version="2.17">
        <description>
          Controls whether the MoCA Node operates in point-to-point Turbo Mode
          or not.

          When set to {{true}} the turbo mode is enabled; when set to {{false}}
          the turbo mode is disabled (TURBO_MODE_EN Managed Parameter).

          See {{bibref|MoCAv2.0|section 10 and Table 17-1}}.
        </description>
        <syntax>
          <boolean/>
          <default type="factory" value="false"/>
        </syntax>
      </parameter>

      <parameter name="PolicingEnable" access="readWrite"
          id="mocaIfPolicingEnable/1.3.6.1.4.1.31621.1.2.1.1.1.22"
          version="2.17">
        <description>
          Controls whether policing of PQoS Flows is enabled or disabled. When
          {{false}} the policy is disabled, and when {{true}} the policy is
          enabled (POLICING_EN Managed Parameter).

          See {{bibref|MoCAv2.0|section 8.8 and Table 17-1}}.
        </description>
        <syntax>
          <boolean/>
          <default type="factory" value="false"/>
        </syntax>
      </parameter>

      <parameter name="TlpMin" access="readWrite"
          id="mocaIfTlpMin/1.3.6.1.4.1.31621.1.2.1.1.1.23" version="2.17">
        <description>
          The minimum time (in milliseconds) a MoCA Node is required to stay in
          the Listening Phase of the Network Search (TLP_MIN Managed
          Parameter).

          See {{bibref|MoCAv2.0|Table 17-2}}.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="factory" value="0"/>
        </syntax>
      </parameter>

      <parameter name="TlpMax" access="readWrite"
          id="mocaIfTlpMax/1.3.6.1.4.1.31621.1.2.1.1.1.24" version="2.17">
        <description>
          The maximum time (in milliseconds) a MoCA Node is required to stay in
          the Listening Phase of the Network Search (TLP_MAX Managed
          Parameter).

          Default value of {{param}} depends on the band configuration as
          follows:

          * 20 seconds for band E

          * 35 seconds for band F

          * 95 seconds for Band ExD

          * 10 seconds for Band D-Low

          * 55 seconds for Band D-High

          See {{bibref|MoCAv2.0|section 8.1}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="RlapmEnable" access="readWrite"
          id="mocaIfRlapmEnable/1.3.6.1.4.1.31621.1.2.1.1.1.25" version="2.17">
        <description>
          Controls whether the RLAPM (Receive Level Added PHY Margin) function
          is enabled and the MoCA Node needs to apply it, or disabled and the
          MoCA Node needs to ignore it.

          RLAPM function is enabled when set to {{true}}. RLAPM function is
          disabled when set to {{false}}.

          The RLAPM function allows a Node to add a specific global PHY margin
          (RLAPM) to all the subcarriers' bitloadings at each estimated
          aggregate receive power level. This RLAPM value is obtained from the
          RLAPM table {{object|Device.MoCA.Interface.{i}.Rlapm.{i}.}}.

          See {{bibref|MoCAv2.0|section 7.15 and Table 17-1}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="RlapmProfileSelect" access="readWrite"
          id="mocaIfRlapmProfileSelect/1.3.6.1.4.1.31621.1.2.1.1.1.26"
          version="2.17">
        <description>
          Controls which RLAPM (Receive Level Added PHY Margin) profile is
          Active.

          See {{bibref|MoCAv2.0|section 7.15.2 and Table 17-1}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SapmEnable" access="readWrite"
          id="mocaIfSapmEnable/1.3.6.1.4.1.31621.1.2.1.1.1.27" version="2.17">
        <description>
          Controls whether the SAPM (Subcarrier Added PHY Margin) function is
          enabled and the MoCA Node needs to apply it, or disabled and the MoCA
          Node needs to ignore it.

          SAPM function is enabled when set to {{true}}. SAPM function is
          disabled when set to {{false}}.

          The SAPM function allows a Node to add a prespecified PHY margin to
          each subcarrier’s bitloading (SAPM value) whenever the aggregate
          received power levels (ARPLs) are below a pre-specified threshold.
          This SAPM value is obtained from the SAPM table
          {{object|Device.MoCA.Interface.{i}.Sapm.{i}.}}.

          See {{bibref|MoCAv2.0|section 7.15 and Table 17-1}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="SapmProfileSelect" access="readWrite"
          id="mocaIfSapmProfileSelect/1.3.6.1.4.1.31621.1.2.1.1.1.28"
          version="2.17">
        <description>
          Controls which SAPM (Subcarrier Added PHY Margin) profile is Active.

          See {{bibref|MoCAv2.0|section 7.15.1 and Table 17-1}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PowerStateRequest" access="readWrite"
          id="mocaIfPowerStateRequest/1.3.6.1.4.1.31621.1.2.1.1.1.29"
          version="2.17">
        <description>
          Carries a request to the MoCA Node to transition into a specified
          Power State (POWER_STATE_REQ Managed Parameter).

          See {{bibref|MoCAv2.0|section 12}}.
        </description>
        <syntax>
          <dataType ref="MocaPowerState"/>
          <default type="factory" value="m0Active"/>
        </syntax>
      </parameter>

      <parameter name="SeqNumMr" access="readWrite"
          id="mocaIfSeqNumMr/1.3.6.1.4.1.31621.1.2.1.1.1.30" version="2.17">
        <description>
          Sequence Number used by the MR Transaction (SEQ_NUM_MR Managed
          Parameter).

          See {{bibref|MoCAv2.0|section 7.15 and Table 17-1}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
          <default type="factory" value="0"/>
        </syntax>
      </parameter>

      <parameter name="PowerStateTrapEnable" access="readWrite"
          id="mocaIfPowerStateTrapEnable/1.3.6.1.4.1.31621.1.2.1.1.1.31"
          version="2.17">
        <description>
          Used for power state message trap.

          * When set to {{true}} it allows the MoCA Node to report a trap on
            each Power State transition.

          * When set to {{false}} no trap report is generated when the MoCA
            Node Power State changes.

          See {{bibref|MoCAv2.0|section 12}}.
        </description>
        <syntax>
          <boolean/>
          <default type="factory" value="false"/>
        </syntax>
      </parameter>

      <parameter name="LmoTrapEnable" access="readWrite"
          id="mocaIfLmoTrapEnable/1.3.6.1.4.1.31621.1.2.1.1.1.32"
          version="2.17">
        <description>
          Used for LMO (Link Maintenance Operation) message trap.

          * When set to {{true}} it allows the MoCA Node to report a trap on
            transitioning to LMO.

          * When set to {{false}} no trap report the MoCA Node is not
            transitioning to LMO.

          See {{bibref|MoCAv2.0|section 12}}.
        </description>
        <syntax>
          <boolean/>
          <default type="factory" value="false"/>
        </syntax>
      </parameter>

      <parameter name="PrimaryOffset" access="readWrite"
          id="mocaIfPrimaryOffset/1.3.6.1.4.1.31621.1.2.1.1.1.33"
          version="2.17">
        <description>
          The offset in {{units}} of the primary channel relative to the beacon
          channel (PRIMARY_OFFSET Managed Parameter).
        </description>
        <syntax>
          <int>
            <range minInclusive="-25" maxInclusive="25" step="25"/>
            <units value="MHz"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="SecondaryOffset" access="readWrite"
          id="mocaIfSecondaryOffset/1.3.6.1.4.1.31621.1.2.1.1.1.34"
          version="2.17">
        <description>
          The offset in {{units}} of the secondary channel relative to the
          beacon channel (SECONDARY_OFFSET Managed Parameter).

          A value of 0 indicates that there is no secondary channel.
        </description>
        <syntax>
          <int>
            <range minInclusive="-125" maxInclusive="125" step="125"/>
            <units value="MHz"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="BeaconPowerDistributed" access="readWrite"
          id="moca25IfBeaconPowerDistributed/1.3.6.1.4.1.31621.1.3.1.1.1.1"
          version="2.17">
        <description>
          The networkwide (see {{param|BeaconPowerMePie}}) value of Beacon
          transmit power in {{units}} sent by the NC (Network Coordinator) in
          Beacon Power PIEs (Power Information Elements).

          A value of 255 indicates that no networkwide PIE is sent.

          See {{bibref|MoCAv2.5|section 7.1.5 and Table 17-1}}.
        </description>
        <syntax>
          <int>
            <range minInclusive="-10" maxInclusive="7"/>
            <range minInclusive="255" maxInclusive="255"/>
            <units value="dBm"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="BeaconPowerLocal" access="readWrite"
          id="moca25IfBeaconPowerLocal/1.3.6.1.4.1.31621.1.3.1.1.1.2"
          version="2.17">
        <description>
          The value of Beacon transmit power in {{units}} used by the Node when
          it transmits beacons.
        </description>
        <syntax>
          <int>
            <range minInclusive="-10" maxInclusive="7"/>
            <units value="dBm"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="BeaconPowerMePie" access="readWrite"
          id="moca25IfBeaconPowerMePie/1.3.6.1.4.1.31621.1.3.1.1.1.3"
          version="2.17">
        <description>
          The Beacon Power PIE (Power Information Element) that the ME
          (Management Entity) wants the NC (Network Coordinator) to send to
          configure the Beacon Transmit Power of the different nodes. See
          {{bibref|MoCAv2.5|section 7.1.5}}.

          This parameter specifies if the Beacon transmit power is intended to
          set the Beacon Power Local (individual type) or the Beacon Power
          Distributed (networkwide type) of the selected nodes.

          It is encoded as specified in {{bibref|MOCA25-MIB|section 4.11}}.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="4" maxLength="4"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="BeaconPowerMePieSend" access="readWrite"
          id="moca25IfBeaconPowerMePieSend/1.3.6.1.4.1.31621.1.3.1.1.1.4"
          version="2.17">
        <description>
          When this parameter is written, instructs the Node (in case of
          Network Coordinator) to send a set of Beacon Power PIEs (Power
          Information Element) with the Beacon Power PIE fields set as
          specified in {{param|BeaconPowerMePie}}.

          See {{bibref|MoCAv2.5|section 7.1.5}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BeaconPowerNetConfig" access="readWrite"
          id="moca25IfBeaconPowerNetConfig/1.3.6.1.4.1.31621.1.3.1.1.1.5"
          version="2.17">
        <description>
          Controls whether the Node is allowed to configure its Beacon power
          (both Beacon Power Distributed and Beacon Power Local) according to
          the Beacon Power PIE (Power Information Element) sent by the NC
          (Network Coordinator).

          * When set to true the Node is allowed to configure its Beacon power.

          * When set to false the Node is not allowed to configure its Beacon
            power.

          See {{bibref|MoCAv2.5|section 7.1.5 and Table 17-1}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="EnhancedPassword" access="readWrite"
          id="moca25IfEnhancedPassword/1.3.6.1.4.1.31621.1.3.1.1.1.6"
          version="2.17">
        <description>
          The MoCA Enhanced Password using an ASCII printable character.

          This value must be 12 to 64 ASCII printable characters with decimal
          codes in the range 33 to 126 inclusive. Access is only allowed when
          used with SNMPv3 protocol, but not allowed when used with SNMPv1 or
          SNMPv2c protocol.

          If this value changes, this node will drop from the network if
          {{param|PrivacyEnabledSetting}} is {{true}}. If this managed object
          is changed, it may not be possible to change this object again via
          the SNMP protocol. The mechanism to change this object again is out
          of the scope of this MIB definition draft.

          See {{bibref|MoCAv2.5|section 11.3.1}}.
        </description>
        <syntax secured="true">
          <string>
            <size minLength="12" maxLength="64"/>
            <size minLength="0" maxLength="0"/>
          </string>
          <default type="factory" value=""/>
        </syntax>
      </parameter>

      <parameter name="FirstOffset" access="readWrite"
          id="moca25IfFirstOffset/1.3.6.1.4.1.31621.1.3.1.1.1.7" version="2.17">
        <description>
          The offset of the First Channel's center frequency below the center
          frequency of the Primary Channel. Valid values are -4 to 0.

          See {{bibref|MoCAv2.5|Table 17-1}}.
        </description>
        <syntax>
          <int>
            <range minInclusive="-4" maxInclusive="0"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="HandoffToLowerVersionEnable" access="readWrite"
          id="moca25IfHandoffToLowerVersionEnable/1.3.6.1.4.1.31621.1.3.1.1.1.8"
          version="2.17">
        <description>
          Enable handoff to a MoCA 2 or MoCA 1 Node if this value is {{true}}.
          Disable handoff to a MoCA 2 or MoCA 1 Node if this value is
          {{false}}.

          See {{bibref|MoCAv2.5|section 8.11.1 and Table 17-1}}.
        </description>
        <syntax>
          <boolean/>
          <default type="factory" value="false"/>
        </syntax>
      </parameter>

      <parameter name="MgntEntityNetIePayloadRespTimeout" access="readWrite"
          id="moca25IfMgntEntityNetIePayloadRespTimeout/1.3.6.1.4.1.31621.1.3.1.1.1.9"
          version="2.17">
        <description>
          The number of Discovery Request transmission opportunities a NN has
          to wait for a response to a Management Entity Response Network IE
          before continuing its network search.

          See {{bibref|MoCAv2.5|section 8.3.3.2 and Table 17-1}}.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="factory" value="1000"/>
        </syntax>
      </parameter>

      <parameter name="MgntEntityNetIePayloadTx" access="readWrite"
          id="moca25IfMgntEntityNetIePayloadTx/1.3.6.1.4.1.31621.1.3.1.1.1.10"
          version="2.17">
        <description>
          The payload of the Management Entity Request Network IE (when the
          Node is trying to join the network), or of the Management Entity
          Response Network IE (when the Node is the NC).

          See {{bibref|MoCAv2.5|section 8.3.3 and Table 17-1}}.

              struct moca25IfMgntEntityNetIePayload { short vendorId; // 2
              octets (MoCA Vendor ID) char information[60]; // 60 octets (Up to
              60 bytes of vendor specific information) }
        </description>
        <syntax>
          <hexBinary>
            <size minLength="2" maxLength="62"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="MpsPrivacyDown" access="readWrite"
          id="moca25IfMpsPrivacyDown/1.3.6.1.4.1.31621.1.3.1.1.1.11"
          version="2.17">
        <description>
          Controls whether the Node, during its MPS (MoCA Protected Setup)
          session, is allowed to accept privacy setting of Privacy Disabled
          from another Node when its own setting is Privacy Enabled. This
          parameter is valid only when {{param|MpsPrivacyReceive}} is set to
          {{true}}.

          See {{bibref|MoCAv2.5|section 8.3.1 and Table 17-1}}.
        </description>
        <syntax>
          <boolean/>
          <default type="factory" value="false"/>
        </syntax>
      </parameter>

      <parameter name="MpsPrivacyReceive" access="readWrite"
          id="moca25IfMpsPrivacyReceive/1.3.6.1.4.1.31621.1.3.1.1.1.12"
          version="2.17">
        <description>
          Controls whether the Node, during its MPS (MoCA Protected Setup)
          session, is allowed to accept privacy settings (Privacy Enabled /
          Disabled and Network Password and/or Enhanced Network Password) from
          another Node.

          See {{bibref|MoCAv2.5|section 8.3.1 and Table 17-1}}.
        </description>
        <syntax>
          <boolean/>
          <default type="factory" value="true"/>
        </syntax>
      </parameter>

      <parameter name="MpsReset" access="readWrite"
          id="moca25IfMpsReset/1.3.6.1.4.1.31621.1.3.1.1.1.13" version="2.17">
        <description>
          Resets the MPS (MoCA Protected Setup) state of the Node
          {{param|MpsState}} to un-Paired and reinitializes MPS local variables
          and relevant parameters when this parameter is written.

          See {{bibref|MoCAv2.5|Section 8.3.1 and Table 17-1}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MpsTriggered" access="readWrite"
          id="moca25IfMpsTriggered/1.3.6.1.4.1.31621.1.3.1.1.1.14"
          version="2.17">
        <description>
          Signals the Node in Power State M0 (Active) or M1 (Low Power Idle)
          that MPS (MoCA Protected Setup) was triggered when this parameter is
          written.

          See {{bibref|MoCAv2.5|Section 8.3.1 and Table 17-1}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MpsUnpairedTime" access="readWrite"
          id="moca25IfMpsUnpairedTime/1.3.6.1.4.1.31621.1.3.1.1.1.15"
          version="2.17">
        <description>
          The minimum time in {{units}} the Node is required to stay in the
          un-Paired state after it starts network search if the Node creates or
          joins a network without using MPS (MoCA Protected Setup).

          See {{bibref|MoCAv2.5|Section 8.3.1 and Table 17-1}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="factory" value="300"/>
        </syntax>
      </parameter>

      <parameter name="MpsWalkTime" access="readWrite"
          id="moca25IfMpsWalkTime/1.3.6.1.4.1.31621.1.3.1.1.1.16"
          version="2.17">
        <description>
          The allowed time interval in {{units}} to trigger MPS (MoCA Protected
          Setup) on two Nodes.

          See {{bibref|MoCAv2.5|Section 8.3.1 and Table 17-1}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="12" maxInclusive="1200"/>
            <units value="seconds"/>
          </unsignedInt>
          <default type="factory" value="120"/>
        </syntax>
      </parameter>

      <parameter name="NetworkJoin" access="readWrite"
          id="moca25IfNetworkJoin/1.3.6.1.4.1.31621.1.3.1.1.1.17"
          version="2.17">
        <description>
          Instructs the NN to join the latest network from which the NN
          forwarded a Management Entity Response Network IE: Yes if this value
          is {{true}} and No if this value is {{false}}.

          See {{bibref|MoCAv2.5|Section 8.3.3 and Table 17-1}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="NetworkNameAdmissionRule" access="readWrite"
          id="moca25IfNetworkNameAdmissionRule/1.3.6.1.4.1.31621.1.3.1.1.1.18"
          version="2.17">
        <description>
          Controls which Admission rule to follow.

          See {{bibref|MoCAv2.5|Section 8.3.3 and Table 17-1}}.
        </description>
        <syntax>
          <string>
            <enumeration value="none">
              <description>Join no network.</description>
            </enumeration>
            <enumeration value="all">
              <description>Join any network.</description>
            </enumeration>
            <enumeration value="name">
              <description>
                Join only the network with a network name that matches
                {{param|NetworkNameNcNn}}.
              </description>
            </enumeration>
            <enumeration value="osp">
              <description>
                Wait for management entity instructions after exchanging OSP
                messages.
              </description>
            </enumeration>
          </string>
          <default type="factory" value="none"/>
        </syntax>
      </parameter>

      <parameter name="NetworkNameNcNn" access="readWrite"
          id="moca25IfNetworkNameNcNn/1.3.6.1.4.1.31621.1.3.1.1.1.19"
          version="2.17">
        <description>
          The Network Name the Node is to use for any MoCA network it creates.

          When {{param|NetworkNameAdmissionRule}} is set to
          {{enum|name|NetworkNameAdmissionRule}}, this object also indicates to
          the Node the name of the network to join.

          See {{bibref|MoCAv2.5|Section 8.3.3 and Table 17-1}}.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="NumChannels" access="readWrite"
          id="moca25IfNumChannels/1.3.6.1.4.1.31621.1.3.1.1.1.20"
          version="2.17">
        <description>
          The maximum number of 100MHz channels the Node uses when the Node
          forms the network.

          See {{bibref|MoCAv2.5|Table 17-1}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="5"/>
          </unsignedInt>
          <default type="factory" value="5"/>
        </syntax>
      </parameter>

      <parameter name="Per25Mode" access="readWrite"
          id="moca25IfPer25Mode/1.3.6.1.4.1.31621.1.3.1.1.1.21" version="2.17">
        <description>
          Controls which PER mode the receiver Node uses for calculating the
          bitloading of MoCA 2.5 Unicast profiles, where a value of 0 indicates
          NPER and 1 indicates VLPER.

          See {{bibref|MoCAv2.5|Table 17-1}}.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="factory" value="0"/>
        </syntax>
      </parameter>

      <parameter name="PrivacySupported" access="readWrite"
          id="moca25IfPrivacySupported/1.3.6.1.4.1.31621.1.3.1.1.1.22"
          version="2.17">
        <description>
          Controls whether MoCA 2 Enhanced Privacy, MoCA 2.0 privacy, and MoCA
          1 privacy are supported when privacy is enabled.

          See {{bibref|MoCAv2.5|Section 11 and Table 17-1}}.
        </description>
        <syntax>
          <list/>
          <dataType ref="MocaPrivacy"/>
          <default type="factory"
              value="[moca1Privacy,moca20Privacy,moca2EnhancedPrivacy]"/>
        </syntax>
      </parameter>

      <parameter name="TrafficPermissionEthertype" access="readWrite"
          id="moca25IfTrafficPermissionEthertype/1.3.6.1.4.1.31621.1.3.1.1.1.23"
          version="2.17">
        <description>
          The EtherType value of MSDUs that are allowed to transmit/receive
          to/from a Non-Secured Admitted Node.

          See {{bibref|MoCAv2.5|Section 11.7 and Table 17-1}}.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="2" maxLength="2"/>
          </hexBinary>
          <default type="factory" value="888E"/>
        </syntax>
      </parameter>

      <parameter name="TrafficPermissionLink" access="readWrite"
          id="moca25IfTrafficPermissionLink/1.3.6.1.4.1.31621.1.3.1.1.1.24"
          version="2.17">
        <description>
          Up to 15 pairs of {Node ID, SOURCE_NODE_BITMASK} where
          SOURCE_NODE_BITMASK is the value for SOURCE_NODE_BITMASK for the Node
          with the given Node ID in an Authorized Link PIE that the ME of the
          Authorization Server wants to distribute if the Node is the
          Authorization Server; otherwise, the value of SOURCE_NODE_BITMASK in
          the last received Authorized Link PIE.

          See {{bibref|MoCAv2.5|Section 11.7 and Table 17-1}}.

              struct moca25IfTrafficPermissionLink { long nodeIdVector; // 8
              octets; Bit value in the ith bit position indicates NodeID=(i)
              (LSB=bit0) int numNodes; // 4 octets (Number of Node IDs
              indicated in the NodeIdVector) struct { short SrcNodeBitmask; //
              2 octets (SOURCE_NODE_BITMASK in the latest Authorized Link PIE)
              }[numNodes]; };
        </description>
        <syntax>
          <hexBinary/>
        </syntax>
      </parameter>

      <parameter name="ConnectedNodesChangeTrapEn" access="readWrite"
          id="moca25IfConnectedNodesChangeTrapEn/1.3.6.1.4.1.31621.1.3.1.1.1.25"
          version="2.17">
        <description>
          Used to enable {{param|ConnectedNodesChangeTrap}}.

          * When set to {{true}} it allows the MoCA Node to report a trap on
            the change of {{param|NumNodes}}.

          * When set to {{false}} no trap report is generated when
            {{param|NumNodes}} changes.
        </description>
        <syntax>
          <boolean/>
          <default type="factory" value="false"/>
        </syntax>
      </parameter>

      <parameter name="MgntEntityNetwIePayloadRecTrapEn" access="readWrite"
          id="moca25IfMgntEntityNetwIePayloadRecTrapEn/1.3.6.1.4.1.31621.1.3.1.1.1.26"
          version="2.17">
        <description>
          Used to enable {{param|MgntEntityNetwIePayloadRecTrap}}.

          * When set to {{true}} it allows the MoCA Node to report a trap on
            reception of a Management Entity Request/Response Network IE.

          * When set to {{false}} no trap report is generated when a Management
            Entity Request/Response Network IE is received.
        </description>
        <syntax>
          <boolean/>
          <default type="factory" value="false"/>
        </syntax>
      </parameter>

      <parameter name="MpsTrapEn" access="readWrite"
          id="moca25IfMpsTrapEn/1.3.6.1.4.1.31621.1.3.1.1.1.27" version="2.17">
        <description>
          Used to enable the MPS-related traps: {{param|MpsInitScanRecTrap}},
          {{param|MpsPairFailTrap}}, and {{param|MpsPrivacyChangedTrap}}.
        </description>
        <syntax>
          <boolean/>
          <default type="factory" value="false"/>
        </syntax>
      </parameter>

      <parameter name="NcPrivSupportedRecTrapEn" access="readWrite"
          id="moca25IfNcPrivSupportedRecTrapEn/1.3.6.1.4.1.31621.1.3.1.1.1.28"
          version="2.17">
        <description>
          Used to enable {{param|NcPrivacySupportedRecTrap}}.

          * When set to {{true}} it allows the MoCA Node to report a trap on
            reception of a new NC_PRIVACY_SUPPORTED value.

          * When set to {{false}} no trap report is generated when a new
            NC_PRIVACY_SUPPORTED value is received.
        </description>
        <syntax>
          <boolean/>
          <default type="factory" value="false"/>
        </syntax>
      </parameter>

      <parameter name="NetworkNameRecTrapEn" access="readWrite"
          id="moca25IfNetworkNameRecTrapEn/1.3.6.1.4.1.31621.1.3.1.1.1.29"
          version="2.17">
        <description>
          Used to enable {{param|NetworkNameRecTrap}}.

          * When set to {{true}} it allows the MoCA Node to report a trap on
            reception of a Network Name.

          * When set to {{false}} no trap report is generated when a Network
            Name is received.
        </description>
        <syntax>
          <boolean/>
          <default type="factory" value="false"/>
        </syntax>
      </parameter>

      <parameter name="NodeDropTrapEn" access="readWrite"
          id="moca25IfNodeDropTrapEn/1.3.6.1.4.1.31621.1.3.1.1.1.30"
          version="2.17">
        <description>
          Used to enable {{param|NodeDropAdmFailureTrap}},
          {{param|NodeDropNcTrap}}, {{param|NodeDropMpsTriggeredTrap}}, and
          {{param|NodeDropNcChgTrap}}.
        </description>
        <syntax>
          <boolean/>
          <default type="factory" value="false"/>
        </syntax>
      </parameter>

      <parameter name="TxPowerLimit" access="readWrite"
          id="mocaIfTxPowerLimit/1.3.6.1.4.1.31621.1.2.1.1.1.4">
        <description>
          The value in dB by which to reduce the transmit power of the node
          from its maximum transmit power. The transmit power SHALL only be
          changed when {{param|Status}} is not {{enum|Up|Status}}, which means
          the interface is not part of a MoCA network. If changed, the
          parameter may not take effect until the MoCA interface is restarted.

          This parameter is based on ''mocaIfTxPowerLimit'' from
          {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <dataType ref="MocaDB"/>
          <default type="factory" value="0"/>
        </syntax>
      </parameter>

      <parameter name="PowerCntlPhyTarget" access="readWrite"
          id="mocaIfPowerControlTargetRate/1.3.6.1.4.1.31621.1.2.1.1.1.6">
        <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>
          <dataType ref="MocaPhyRate"/>
          <default type="factory" value="630"/>
        </syntax>
      </parameter>

      <parameter name="BeaconPowerLimit" access="readWrite" status="obsoleted"
          id="mocaIfBeaconPowerBackoff/1.3.6.1.4.1.31621.1.2.1.1.1.5">
        <description>
          The value in dB by which to reduce the setting of the transmit power
          of the Beacon from the maximum transmit power (BEACON_PWR_BACKOFF
          Managed Parameter). The beacon transmit power SHALL only be changed
          when {{param|Status}} is not {{enum|Up|Status}}, which means the
          interface is not part of a MoCA network. If changed, the parameter
          may not take effect until the MoCA interface is restarted.

          This parameter is based on ''mocaIfBeaconPowerLimit'' from
          {{bibref|MOCA11-MIB}}.

          Note that this parameter maps to different MIB objects for MoCA
          1.0/1.1 and MoCA 2.0.

          {{deprecated|2.17|for MoCA 2.5}}

          {{obsoleted|2.19}}
        </description>
        <syntax>
          <dataType ref="MocaDB"/>
          <default type="factory" value="0"/>
        </syntax>
      </parameter>

      <parameter name="NetworkTabooMask" access="readOnly"
          id="mocaIfTabooChannelMask/1.3.6.1.4.1.31621.1.2.1.7.1.13">
        <description>
          The MoCA taboo channels identified for the home network.

          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="MocaChannelMask"/>
        </syntax>
      </parameter>

      <parameter name="NodeTabooMask" access="readOnly"
          id="mocaIfNodeTabooChannelMask/1.3.6.1.4.1.31621.1.2.1.7.1.14">
        <description>
          The MoCA taboo channels identified for this device.

          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="MocaChannelMask"/>
        </syntax>
      </parameter>

      <parameter name="SupportedBands" access="readOnly"
          id="mocaIfSupportedBands/1.3.6.1.4.1.31621.1.2.1.7.1.15"
          version="2.17">
        <description>
          Lists all the supported bands and sub-bands by this device.
        </description>
        <syntax>
          <dataType ref="MocaBand"/>
        </syntax>
      </parameter>

      <parameter name="TxBcastRate" access="readOnly"
          id="mocaIfTxGcdRate/1.3.6.1.4.1.31621.1.2.1.7.1.20">
        <description>
          The broadcast PHY transmit rate for this interface.

          This parameter is based on ''mocaIfTxGcdRate'' from
          {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <dataType ref="MocaPhyRate"/>
        </syntax>
      </parameter>

      <parameter name="TxBcastPowerReduction" access="readOnly"
          id="mocaIfTxGcdPowerReduction/1.3.6.1.4.1.31621.1.2.1.7.1.16">
        <description>
          Transmit Power attenuation relative to the maximum transmit power for
          broadcast transmissions.

          This parameter is based on ''mocaIfTxGcdPowerReduction'' from
          {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <dataType ref="MocaDB"/>
        </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}}.

          This parameter MUST NOT be implemented for MoCA 2.0 because it
          doesn't map to a MIB object.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="PacketAggregationCapability" access="readOnly"
          id="mocaIfPduNumber/1.3.6.1.4.1.31621.1.2.1.7.1.17">
        <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}}.

          Note that this parameter maps to different MIB objects for MoCA
          1.0/1.1 and MoCA 2.0. [XXX1: Need to modify the syntax to
          'unsignedInt' because MoCA 2.0 requires a minimum of 20 packets and
          MoCA 2.5 requires a minimum of 80 packets.]
        </description>
        <syntax>
          <unsignedInt>
            <units value="packets"/>
          </unsignedInt>
        </syntax>
      </parameter>

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

      <parameter name="PasswordHash" access="readOnly"
          id="mocaIfPasswordHash/1.3.6.1.4.1.31621.1.2.1.7.1.21" version="2.17">
        <description>
          The 16 LSBs of a SHA1 performed on a 0-extended password
          ({{param|KeyPassphrase}}) concatenated with the SALT string
          "MocaPasswordHash". This parameter allows to remotely validate the
          MoCA password configuration without exposing its value. This value
          must be 4 hexadecimal digits long.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="2" maxLength="2"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="AggregationSize" access="readOnly"
          id="mocaIfAggregationSize/1.3.6.1.4.1.31621.1.2.1.7.1.23"
          version="2.17">
        <description>
          The maximum number of bytes in one aggregate which can be received by
          the MoCA Node.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="AeNumber" access="readOnly"
          id="mocaIfAeNumber/1.3.6.1.4.1.31621.1.2.1.7.1.24" version="2.17">
        <description>
          Maximum number of allocation elements, excluding the TAUs and the
          Dummy DAUs, in one MAP the MoCA Node can process.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SupportedIngressPqosFlows" access="readOnly"
          id="mocaIfSupportedIngressPqosFlows/1.3.6.1.4.1.31621.1.2.1.7.1.25"
          version="2.17">
        <description>
          Maximum number of Ingress PQoS Flows supported by the MoCA Node.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SupportedEgressPqosFlows" access="readOnly"
          id="mocaIfSupportedEgressPqosFlows/1.3.6.1.4.1.31621.1.2.1.7.1.26"
          version="2.17">
        <description>
          Maximum number of Egress PQoS Flows supported by the MoCA Node.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PowerStateCap" access="readOnly"
          id="mocaIfPowerStateCap/1.3.6.1.4.1.31621.1.2.1.7.1.27"
          version="2.17">
        <description>
          The Power State capabilities of the MoCA Node (e.g., which Power
          States it can transition to) (POWER_STATE_CAP Managed Parameter).
          This value can change over time (e.g. when a MoCA 1 Node joins the
          network).
        </description>
        <syntax>
          <dataType ref="MocaPowerState"/>
        </syntax>
      </parameter>

      <parameter name="AvbSupport" access="readOnly"
          id="mocaIfAvbSupport/1.3.6.1.4.1.31621.1.2.1.7.1.28" version="2.17">
        <description>
          The support of the MoCA Node for the IEEE 802.1 Audio Video Bridge
          specification. AVB is supported if this value is {{true}}. AVB is not
          supported if this value is {{false}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="ResetCount" access="readOnly"
          id="mocaIfResetCount/1.3.6.1.4.1.31621.1.2.1.7.1.29" version="2.17">
        <description>
          Count of MoCA resets since the interface was enabled for this MoCA
          Node.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="LinkDownCount" access="readOnly"
          id="mocaIfLinkDownCount/1.3.6.1.4.1.31621.1.2.1.7.1.30"
          version="2.17">
        <description>
          The number of times that this MoCA Node has lost link with the MoCA
          network since the interface was enabled.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="LmoNodeID" access="readOnly"
          id="mocaIfLmoNodeID/1.3.6.1.4.1.31621.1.2.1.7.1.31" version="2.17">
        <description>
          The ID of the MoCA Node currently undergoing LMO (Link Maintenance
          Operation), i.e. the LMO node.
        </description>
        <syntax>
          <dataType ref="MocaNodeID"/>
        </syntax>
      </parameter>

      <parameter name="NetworkState" access="readOnly"
          id="mocaIfNetworkState/1.3.6.1.4.1.31621.1.2.1.7.1.32" version="2.17">
        <description>
          The current Link control state in the MoCA network for the MoCA Node.
          This network state is a MAC parameter determined by the NC (Network
          Coordinator) and broadcasted in the MAP to the rest of nodes.

          {{enum|beginNodeAdmissionState}},
          {{enum|newNodeTypeOneProbeTxState}},
          {{enum|newNodeTypeOneProbeRxState}},
          {{enum|newGcdDistributionState}}, {{enum|beginPhyProfileState}},
          {{enum|steadyState}} refer to the Node Admission (see
          {{bibref|MoCAv2.5|Section 8.3}}). The admission process of a new MoCA
          node depends on the operation mode of the MoCA Network that it is
          going to join (MoCA 1 mode, MoCA 2.0 mode or Mixed Mode). The Node
          Admission process is completed when the NC (Network Controller)
          changes the network state to Steady State ({{enum|steadyState}}) at
          the end of the Node Admission process.

          {{enum|typeThreeProbeState}}, {{enum|lmoTypeOneProbeState}},
          {{enum|lmoNodeGcdDistributionState}},
          {{enum|beginLmoPhyProfileState}},
          {{enum|lmoGcdTypeOneProbeLinkState}}, {{enum|steadyState}} refer to
          the Regular Link Maintenance Operation (see {{bibref|MoCAv2.5|Section
          8.9.1}}).

          {{enum|alternateChannelQuietLineState}},
          {{enum|alternateChannelEvmProbeState}},
          {{enum|unsolicitedProbeReportState}},
          {{enum|beginUnsolicitedPhyProfileState}},
          {{enum|rxDeterminedProbeState}}, {{enum|steadyState}} refer to the
          On-Demand Link Maintenance Operation (see {{bibref|MoCAv2.5|Section
          8.9.2}}).

          {{enum|calibrationState}} refer to the Network Operation after a NC
          handoff or failover (see {{bibref|MoCAv2.5|Section 8.14}}).
        </description>
        <syntax>
          <string>
            <enumeration value="beginNodeAdmissionState">
              <description>
                "Begin Node Admission State" starts after completing the
                pre-admission discovery message exchange with the NC, then the
                joining node sends an admission request frame to the NC. During
                this state, the EVM (Error Vector Magnitude) probes and link
                acknowledgments are exchanged between the new node, the NC and
                the existing nodes in the network. Refer to
                {{bibref|MoCAv2.5|Section 8.3.4}} for details.
              </description>
            </enumeration>
            <enumeration value="newNodeTypeOneProbeTxState">
              <description>
                The NC advances the network state to "New Node Type I Probe Tx
                State" after receiving next link state indication from all the
                nodes. During this state, the Beacon Channel (in the presence
                of MoCA 1 nodes) from the MoCA 2 new nodes to all other
                existing nodes (including the NC) is characterized and the
                modulation used on this channel is optimized. The Primary
                Channel, MoCA 2.x bonded channels from the MoCA 2 new nodes to
                all other MoCA 2 Nodes (including NC) are characterized and the
                modulation on these channels is optimized. Refer to
                {{bibref|MoCAv2.5|Section 8.3.5}} for details.
              </description>
            </enumeration>
            <enumeration value="newNodeTypeOneProbeRxState">
              <description>
                The NC advances the network state to "New Node Type I Probe Rx
                State" after relaying Type I Probe Reports of all nodes, and
                after it has received next state indication from each node.
                Refer to {{bibref|MoCAv2.5|Section 8.3.6}} for details.
              </description>
            </enumeration>
            <enumeration value="newGcdDistributionState">
              <description>
                The NC advances the network state to "New Node GCD Distribution
                State" once it has received the next state indication from each
                node to "New Node GCD Distribution State". In this state, the
                GCD (Greater Common Denominator) Distribution Reports are
                distributed. Refer to {{bibref|MoCAv2.5|Section 8.3.7}} for
                details.
              </description>
            </enumeration>
            <enumeration value="beginPhyProfileState">
              <description>
                The NC advances the network state to "Begin PHY Profile State"
                when all nodes indicate “Begin PHY Profile State” in their RR
                (Reservation Request). Upon reception of this state, the node
                (new or existing) activates the new computed PHY profiles.
                Refer to {{bibref|MoCAv2.5|Section 8.3.8}} for details.
              </description>
            </enumeration>
            <enumeration value="steadyState">
              <description>
                The node advances to "Steady State" after waiting for T15 or
                T16 (NC) in {{enum|beginPhyProfileState}}. Refer to
                {{bibref|MoCAv2.5|Section 8.3.9}} for details.

                The node advances to "Steady State" after waiting for T15 in
                {{enum|beginUnsolicitedPhyProfileState}} or, in case of NC,
                after receiving “Steady State” indication from each node. Refer
                to {{bibref|MoCAv2.5|Section 8.9.2.2.3}}.

                The node advances to "Steady State" after waiting for T15 or
                T16 (NC) in {{enum|beginLmoPhyProfileState}}. Refer to [Section
                8.9.1.7/MoCAv2.5] for details.
              </description>
            </enumeration>
            <enumeration value="typeThreeProbeState">
              <description>
                During this first state of the Regular LMO, Type III Probes are
                exchanged between the LMO node and the rest of nodes. Refer to
                {{bibref|MoCAv2.5|Section 8.9.1.2}} for details.
              </description>
            </enumeration>
            <enumeration value="lmoTypeOneProbeState">
              <description>
                After the exchange of the EVM Reports during the state
                {{enum|typeThreeProbeState}}, Type I Probes are exchanged
                between the LMO node and and all other 1.x nodes. This state
                finalizes after the LMO node receives the Composite OFDMA
                Probes from the MoCA 2 Nodes. Refer to
                {{bibref|MoCAv2.5|Section 8.9.1.3}} for details.
              </description>
            </enumeration>
            <enumeration value="lmoNodeGcdDistributionState">
              <description>
                After state {{enum|lmoGcdTypeOneProbeLinkState}}, the LMO node
                distributes the new GCD Report to all nodes. Refer to
                {{bibref|MoCAv2.5|Section 8.9.1.5}} for details.
              </description>
            </enumeration>
            <enumeration value="beginLmoPhyProfileState">
              <description>
                The NC advances the network state to "Begin LMO PHY Profile
                State". When a node receives the "Begin LMO PHY Profile" Link
                Control state notification, it can start using the newly
                computed PHY profiles. Refer to {{bibref|MoCAv2.5|Section
                8.9.1.6}} for details.
              </description>
            </enumeration>
            <enumeration value="lmoGcdTypeOneProbeLinkState">
              <description>
                The NC advances the network state to "GCD Type I Probe Link
                State". In this state, the LMO node broadcasts GCD Type I
                Probes to all nodes. For details, refer to
                {{bibref|MoCAv2.5|Section 8.9.1.4}}.
              </description>
            </enumeration>
            <enumeration value="alternateChannelQuietLineState">
              <description>
                The node moves into the "Alternate Channel Quite Line State" to
                measure quiet line noise and interference levels in the
                alternate MoCA channel. Refer to {{bibref|MoCAv2.5|Section
                8.9.2.5}} for details.
              </description>
            </enumeration>
            <enumeration value="alternateChannelEvmProbeState">
              <description>
                The node moves into the "Alternate Channel EVM Probe State" to
                measure EVM Probe signal level in the alternate MoCA channel.
                Refer to {{bibref|MoCAv2.5|Section 8.9.2.5}} for details.
              </description>
            </enumeration>
            <enumeration value="unsolicitedProbeReportState">
              <description>
                The NC sets the network state to "Unsolicited Probe Report
                State" after a node request to move to this state in order to
                update a PHY Profile. Refer to {{bibref|MoCAv2.5|Section
                8.9.2.2.1}} for details.
              </description>
            </enumeration>
            <enumeration value="beginUnsolicitedPhyProfileState">
              <description>
                After state {{enum|unsolicitedProbeReportState}}, a node can
                begin using the new PHY profiles once the NC sets the network
                state to "Begin Unsolicited PHY
                Profile".{{bibref|MoCAv2.5|Section 8.9.2.2.2}}
              </description>
            </enumeration>
            <enumeration value="rxDeterminedProbeState">
              <description>
                In order to use Receiver-Determined probes, the receiver must
                move from {{enum|steadyState}} to "Rx Determined Probe State".
                Refer to {{bibref|MoCAv2.5|Section 8.9.2.1}} for details.
              </description>
            </enumeration>
            <enumeration value="calibrationState">
              <description>
                During network operations after switching to a new NC, the NC
                node sets the network state to "Calibration State". During this
                state, any node can request time to perform calibration by
                sending probes. Refer to {{bibref|MoCAv2.5|Section 8.14.1}} and
                {{bibref|MoCAv2.5|Section 8.14.2}}.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="PrimaryChannelOffset" access="readOnly"
          id="mocaIfPrimaryChannelOffset/1.3.6.1.4.1.31621.1.2.1.7.1.33"
          version="2.17">
        <description>
          The offset in MHz of the primary channel relative to the beacon
          channel. The allowed values are -25, 0, and +25.
        </description>
        <syntax>
          <int/>
        </syntax>
      </parameter>

      <parameter name="SecondaryChannelOffset" access="readOnly"
          id="mocaIfSecondaryChannelOffset/1.3.6.1.4.1.31621.1.2.1.7.1.34"
          version="2.17">
        <description>
          The offset in MHz of the secondary channel relative to the beacon
          channel. The allowed values are -125 and +125. A value of 0 indicates
          that there is no secondary channel.
        </description>
        <syntax>
          <int/>
        </syntax>
      </parameter>

      <parameter name="ResetReason" access="readOnly"
          id="mocaIfResetReason/1.3.6.1.4.1.31621.1.2.1.7.1.35" version="2.17">
        <description>
          Describes the reason for a MoCA link reset or failure to join a
          network.
        </description>
        <syntax>
          <string>
            <size minLength="0" maxLength="80"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="NcVersion" access="readOnly"
          id="mocaIfNcVersion/1.3.6.1.4.1.31621.1.2.1.7.1.36" version="2.17">
        <description>
          Indicates the MoCA version of the NC.

          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. Possible patterns:

          * ''\d+(\.\d+)*''
        </description>
        <syntax>
          <string>
            <size minLength="0" maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LinkState" access="readOnly"
          id="mocaIfLinkState/1.3.6.1.4.1.31621.1.2.1.7.1.37" version="2.17">
        <description>
          This parameter is meaningful only after a Link Failure to indicate
          the state of the network the at the time of the Link failure. Each of
          the three chars (bytes) is represented as two hexadecimal digits.

              struct mocaLinkState { char LINK_STATE; // LINK_STATE_II from the
              Tx/Rx MAP at the // time of the Link Failure char ACF_TYPE; //
              ACF_TYPE from the Tx/Rx BEACON // at the time of the Link Failure
              char ADD_ACF_TYPE; // ADDITIONAL_ACF_TYPE from the Tx/Rx //
              BEACON at the time of the Link Failure };
        </description>
        <syntax>
          <hexBinary>
            <size minLength="3" maxLength="3"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="ConnectedNodesInfo" access="readOnly"
          id="moca25IfConnectedNodesInfo/1.3.6.1.4.1.31621.1.3.1.2.1.1"
          version="2.17">
        <description>
          Indicates the information for each node connected in the network for
          up to 16 nodes.

          See {{bibref|MoCAv2.5|Table 17-1}}.

              struct moca25ConnectedNodesInfo { long nodeIdVector; // 8 octets;
              Bit value in the ith bit position indicates NodeID=(i) (LSB=bit0)
              int numNodes; // 4 octets (Number of Node IDs indicated in the
              NodeIdVector) struct { char guid[8]; // 8 octets (Node GUID MAC
              Address) char mocaVersion; // 1 octet (MoCA Version) }[numNodes];
              };
        </description>
        <syntax>
          <hexBinary>
            <size minLength="12" maxLength="156"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="MgntEntityNetIePayloadRx" access="readOnly"
          id="moca25IfMgntEntityNetIePayloadRx/1.3.6.1.4.1.31621.1.3.1.2.1.2"
          version="2.17">
        <description>
          Indicates the payload of the latest received Management Entity
          Request Network IE, or Management Entity Response Network IE.

          See {{bibref|MoCAv2.5|Table 17-1}}.

              struct moca25IfMgntEntityNetIePayload { short vendorId; // 2
              octets (MoCA Vendor ID) char information[60]; // 60 octets (Up to
              60 bytes of vendor specific information) };
        </description>
        <syntax>
          <hexBinary>
            <size minLength="2" maxLength="62"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="Moca25PhyCapable" access="readOnly"
          id="moca25IfMoca25PhyCapable/1.3.6.1.4.1.31621.1.3.1.2.1.3"
          version="2.17">
        <description>
          Indicate the MoCA Node supports MoCA 2.5 PHY if the value is
          {{true}}.

          Indicate the MoCA Node does not support MoCA 2.5 PHY if this value is
          {{false}}.

          See {{bibref|MoCAv2.5|section 8.3.4.1.1}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MpsInitScanPayload" access="readOnly"
          id="moca25IfMpsInitScanPayload/1.3.6.1.4.1.31621.1.3.1.2.1.4"
          version="2.17">
        <description>
          Reports the channel number, NC's (Network Coordinators) MoCA version,
          Network MPS (MoCA Protected Setup) trigger, and Network MPS
          parameters (if any) and Network Name of the latest MoCA network found
          during Initial MPS Scanning. See {{bibref|MoCAv2.5|section
          8.3.1.1.1}}.

          It is encoded as specified in {{bibref|MOCA25-MIB|section 4.6}}.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="4" maxLength="4"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="MpsState" access="readOnly"
          id="moca25IfMpsState/1.3.6.1.4.1.31621.1.3.1.2.1.5" version="2.17">
        <description>
          Indicates the MPS (MoCA Protected Setup) state of the Node: paired if
          the value is {{true}} and un-Paired if the value is {{false}}.

          See {{bibref|MoCAv2.5|section 8.3.1}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="NetworkNamePayload" access="readOnly"
          id="moca25IfNetworkNamePayload/1.3.6.1.4.1.31621.1.3.1.2.1.6"
          version="2.17">
        <description>
          The payload of the latest received Network Name from the NC.

          See {{bibref|MoCAv2.5|section 8.3.3.2}}.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="0" maxLength="32"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="PrivacyNc" access="readOnly"
          id="moca25IfPrivacyNc/1.3.6.1.4.1.31621.1.3.1.2.1.7" version="2.17">
        <description>
          The latest NC_PRIVACY_SUPPORTED value received from the NC. Before
          any NC_PRIVACY_SUPPORTED is received, reflects the value of
          {{param|PrivacySupported}}.

          See {{bibref|MoCAv2.5|Table 17-1}}.
        </description>
        <syntax>
          <list/>
          <dataType ref="MocaPrivacy"/>
        </syntax>
      </parameter>

      <parameter name="PowerStateResp" access="readOnly"
          id="moca25IfPowerStateResp/1.3.6.1.4.1.31621.1.3.1.2.1.8"
          version="2.17">
        <description>
          Carries the response of the MoCA Node to a request (through
          POWER_STATEREQ) to transition into a desired Power State: yes if the
          value if {{true}} and no if the value is {{false}}.

          See {{bibref|MoCAv2.5|section 12}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="PowerStateStatus" access="readOnly"
          id="moca25IfPowerStateStatus/1.3.6.1.4.1.31621.1.3.1.2.1.9"
          version="2.17">
        <description>
          Reports the current Power State of the Node (POWER_STATE_STATUS
          Managed Parameter).
        </description>
        <syntax>
          <dataType ref="MocaPowerState"/>
        </syntax>
      </parameter>

      <parameter name="ConnectedNodesDropReason" access="readOnly"
          id="moca25IfConnectedNodesDropReason/1.3.6.1.4.1.31621.1.3.1.2.1.10"
          version="2.17">
        <description>
          Reports the GUID(s) of the dropped EN(s) and the reason of node drop
          for up to 15 nodes.

          This object is valid only when the Node is the NC.

          See {{bibref|MoCAv2.5|Table 17-1}}.

              struct moca25IfConnectedNodesDropReason { int numNodes; // 4
              octets (Number of dropped nodes) struct { char guid[8]; // 8
              octets (Node GUID MAC Address) char dropReason; // 1 octet
              (Reason of node drop: // 0x00 Admission Failure // 0x01 Key
              Response Timeout // 0x02 Heartbeat Transmission Timeout // 0x03
              Power State M0 Transition Timeout // 0x04 Disadvantaged Node //
              0x05 RR Transmission Timeout) }[numNodes]; };
        </description>
        <syntax>
          <hexBinary/>
        </syntax>
      </parameter>

      <parameter name="BelowPhyThresholdTrap" access="readOnly"
          id="mocaTrapBelowPhyThreshold/1.3.6.1.4.1.31621.1.2.0.1"
          version="2.17">
        <description>
          If transmit PHY rate between all pairs of MoCA Nodes are greater than
          or equal to {{param|PhyThreshold}}, and subsequently the transmit PHY
          rate of one pair of MoCA Nodes drops below {{param|PhyThreshold}},
          send this notification if {{param|PhyThresholdTrapEnable}} is
          {{true}}.

          This parameter is a counter that is incremented whenever the event
          occurs.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="AbovePhyThresholdTrap" access="readOnly"
          id="mocaTrapAbovePhyThreshold/1.3.6.1.4.1.31621.1.2.0.2"
          version="2.17">
        <description>
          If transmit PHY rate between one or more pairs of MoCA Nodes are less
          than {{param|PhyThreshold}}, and subsequently the transmit PHY rate
          between all pairs of MoCA Nodes goes above or is equal to
          {{param|PhyThreshold}}, send this notification if
          {{param|PhyThresholdTrapEnable}} is {{true}}.

          This parameter is a counter that is incremented whenever the event
          occurs.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="StatusChangeTrap" access="readOnly"
          id="mocaTrapIfStatusChange/1.3.6.1.4.1.31621.1.2.0.3" version="2.17">
        <description>
          This trap is sent when {{param|StatusChangeEnable}} is {{true}} and
          {{param|Status}} changes value.

          This parameter is a counter that is incremented whenever the event
          occurs.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="NumNodesChangeTrap" access="readOnly"
          id="mocaTrapIfNumNodesChange/1.3.6.1.4.1.31621.1.2.0.4"
          version="2.17">
        <description>
          This trap is sent when {{param|NumNodesChangeEnable}} is {{true}} and
          {{param|NumNodes}} changes value.

          This parameter is a counter that is incremented whenever the event
          occurs.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MrRstSuccessTrap" access="readOnly"
          id="mocaTrapMrRstSuccess/1.3.6.1.4.1.31621.1.2.0.5" version="2.17">
        <description>
          An MR Entry Node reports that the network got reset successfully
          (MRRST_SUCCESS Event).

          This parameter is a counter that is incremented whenever the event
          occurs.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MrRstFailTrap" access="readOnly"
          id="mocaTrapMrRstFail/1.3.6.1.4.1.31621.1.2.0.6" version="2.17">
        <description>
          An MR Entry Node reports that the network reset did not complete
          successfully (MRRST_FAIL Event).

          This parameter is a counter that is incremented whenever the event
          occurs.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MrNetworkSuccessTrap" access="readOnly"
          id="mocaTrapMrNetworkSuccess/1.3.6.1.4.1.31621.1.2.0.7"
          version="2.17">
        <description>
          An MR Entry Node reports that the network got reformed successfully
          following the MR transaction (MRNETWORK_SUCCESS Event).

          This parameter is a counter that is incremented whenever the event
          occurs.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MrNetworkFailTrap" access="readOnly"
          id="mocaTrapMrNetworkFail/1.3.6.1.4.1.31621.1.2.0.8" version="2.17">
        <description>
          An MR Entry Node reports that the MR transaction failed, and the
          network did not get reformed (MRNETWORK_FAIL Event).

          This parameter is a counter that is incremented whenever the event
          occurs.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PowerStateBcstRecTrap" access="readOnly"
          id="mocaTrapPowerStateBcstRec/1.3.6.1.4.1.31621.1.2.0.9"
          version="2.17">
        <description>
          When the MoCA Node is in Power State M1 or M2, indicates that the
          MoCA Node has received a Broadcast data MSDU, which is available at
          the data interface (POWER_STATEBCST_REC Event).

          This parameter is a counter that is incremented whenever the event
          occurs.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PowerStateM0NcTrap" access="readOnly"
          id="mocaTrapPowerStateM0Nc/1.3.6.1.4.1.31621.1.2.0.10" version="2.17">
        <description>
          When a MoCA Node is in Power State M1, indicates that it is going to
          move to Power State M0 due to the NCs instruction.

          This parameter is a counter that is incremented whenever the event
          occurs (POWER_STATEM0_NC Event).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PowerStateNc1xTrap" access="readOnly"
          id="mocaTrapPowerStateNc1x/1.3.6.1.4.1.31621.1.2.0.11" version="2.17">
        <description>
          When the MoCA Node is in Power State M1/M2/M3, indicates that MoCA 1
          Node is the NC (POWER_STATENC_1X Event).

          This parameter is a counter that is incremented whenever the event
          occurs.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PowerStateNetVerTrap" access="readOnly"
          id="mocaTrapPowerStateNetVer/1.3.6.1.4.1.31621.1.2.0.12"
          version="2.17">
        <description>
          When the MoCA Node is in Power State M2 or M3, indicates that the
          network MoCA version is changed (POWER_STATENET_VER Event).

          This parameter is a counter that is incremented whenever the event
          occurs.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PowerStateRespTrap" access="readOnly"
          id="mocaTrapPowerStateResp/1.3.6.1.4.1.31621.1.2.0.13" version="2.17">
        <description>
          Carries the response of the MoCA Node to a request (through
          POWER_STATEREQ) to transition into a desired Power State
          (POWER_STATERESP Event).

          This parameter is a counter that is incremented whenever the event
          occurs.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PowerStateUcstPenTrap" access="readOnly"
          id="mocaTrapPowerStateUcstPen/1.3.6.1.4.1.31621.1.2.0.14"
          version="2.17">
        <description>
          When the MoCA Node is in Power State M2, indicates that a Unicast
          data MSDU destined to the MoCA Node is pending (POWER_STATEUCST_PEN
          Event).

          This parameter is a counter that is incremented whenever the event
          occurs.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PowerStateTrnsReqTrap" access="readOnly"
          id="mocaTrapPowerStateTrnsReq/1.3.6.1.4.1.31621.1.2.0.15"
          version="2.17">
        <description>
          When a MoCA Node is in Power State M1 or M2, requests to transition
          to Power State M0 (POWER_STATETRNS_REQ Event).

          This parameter is a counter that is incremented whenever the event
          occurs.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PowerStateWupUrTrap" access="readOnly"
          id="mocaTrapPowerStateWupUr/1.3.6.1.4.1.31621.1.2.0.16"
          version="2.17">
        <description>
          When the MoCA Node is in Power State M2, this reports a wakeup
          request from NC due to unspecified reasons (POWER_STATEWUP_UR Event).

          This parameter is a counter that is incremented whenever the event
          occurs.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="LmoStatusTrap" access="readOnly"
          id="mocaTrapLmoStatus/1.3.6.1.4.1.31621.1.2.0.17" version="2.17">
        <description>
          When {{param|LmoTrapEnable}} is enabled, reports that the MoCA Node
          is starting LMO (Link Maintenance Operation).

          This parameter is a counter that is incremented whenever the event
          occurs.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="LinkFailureTrap" access="readOnly"
          id="mocaTrapLinkFailure/1.3.6.1.4.1.31621.1.2.0.18" version="2.17">
        <description>
          Indicates a link failure. If the failure was an Admission or LMO
          failure, {{param|LinkState}} indicates when the link was dropped
          within the sequence.

          This parameter is a counter that is incremented whenever the event
          occurs.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ConnectedNodesChangeTrap" access="readOnly"
          id="moca25TrapConnectedNodesChange/1.3.6.1.4.1.31621.1.3.0.1"
          version="2.17">
        <description>
          This trap is sent when {{param|ConnectedNodesChangeTrapEn}} is
          {{true}} and {{param|ConnectedNodesInfo}} changes value.

          This parameter is a counter that is incremented whenever the event
          occurs.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MgntEntityNetwIePayloadRecTrap" access="readOnly"
          id="moca25TrapMgntEntityNetwIePayloadRec/1.3.6.1.4.1.31621.1.3.0.2"
          version="2.17">
        <description>
          This trap is sent when {{param|MgntEntityNetwIePayloadRecTrapEn}} is
          {{true}} and {{param|MgntEntityNetIePayloadRx}} changes value.

          This parameter is a counter that is incremented whenever the event
          occurs.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MpsInitScanRecTrap" access="readOnly"
          id="moca25TrapMpsInitScanRec/1.3.6.1.4.1.31621.1.3.0.3"
          version="2.17">
        <description>
          This trap is sent when {{param|MpsTrapEn}} is {{true}} and
          {{param|MpsInitScanPayload}} changes value.

          This parameter is a counter that is incremented whenever the event
          occurs.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MpsPairFailTrap" access="readOnly"
          id="moca25TrapMpsPairFail/1.3.6.1.4.1.31621.1.3.0.4" version="2.17">
        <description>
          This trap is sent when {{param|MpsTrapEn}} is {{true}}, indicates a
          MPS pairing failure.

          This parameter is a counter that is incremented whenever the event
          occurs.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MpsPrivacyChangedTrap" access="readOnly"
          id="moca25TrapMpsPrivacyChanged/1.3.6.1.4.1.31621.1.3.0.5"
          version="2.17">
        <description>
          This trap is sent when {{param|MpsTrapEn}} is {{true}}, indicates
          that the Node's privacy settings (PRIVACYEN and/or PSWD) have been
          changed by MPS.

          This parameter is a counter that is incremented whenever the event
          occurs.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="NcPrivacySupportedRecTrap" access="readOnly"
          id="moca25TrapNcPrivacySupportedRec/1.3.6.1.4.1.31621.1.3.0.6"
          version="2.17">
        <description>
          This trap is sent when {{param|NcPrivSupportedRecTrapEn}} is {{true}}
          and {{param|PrivacyNc}} changes value.

          This parameter is a counter that is incremented whenever the event
          occurs.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="NetworkNameRecTrap" access="readOnly"
          id="moca25TrapNetworkNameRec/1.3.6.1.4.1.31621.1.3.0.7"
          version="2.17">
        <description>
          This trap is sent when {{param|NetworkNameRecTrapEn}} is {{true}} and
          {{param|NetworkNamePayload}} changes value.

          This parameter is a counter that is incremented whenever the event
          occurs.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="NodeDropAdmFailureTrap" access="readOnly"
          id="moca25TrapNodeDropAdmFailure/1.3.6.1.4.1.31621.1.3.0.8"
          version="2.17">
        <description>
          This trap is sent when {{param|NodeDropTrapEn}} is {{true}},
          indicates that the Node drops from the network due to admission
          failure.

          This parameter is a counter that is incremented whenever the event
          occurs.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="NodeDropNcTrap" access="readOnly"
          id="moca25TrapTrapNodeDropNc/1.3.6.1.4.1.31621.1.3.0.9"
          version="2.17">
        <description>
          This trap is sent when {{param|NodeDropTrapEn}} is {{true}},
          indicates that the Node is dropped by the NC as indicated in the
          NODE_BITMASK and LOW_POWER_NODE_BITMASK.

          This parameter is a counter that is incremented whenever the event
          occurs.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="NodeDropMpsTriggeredTrap" access="readOnly"
          id="moca25TrapNodeDropMpsTriggered/1.3.6.1.4.1.31621.1.3.0.10"
          version="2.17">
        <description>
          This trap is sent when {{param|NodeDropTrapEn}} is {{true}},
          indicates that MPS is locally triggered when the Node is un-Paired.

          This parameter is a counter that is incremented whenever the event
          occurs.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="NodeDropNcChgTrap" access="readOnly"
          id="moca25TrapNodeDropNcChg/1.3.6.1.4.1.31621.1.3.0.11"
          version="2.17">
        <description>
          This trap is sent when {{param|NodeDropTrapEn}} is {{true}}},
          indicates that there is a NC change when the Node is Non-Secured
          Admitted Node.

          This parameter is a counter that is incremented whenever the event
          occurs.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.MoCA.Interface.{i}.Stats." minEntries="1"
        maxEntries="1" version="2.0">
      <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="Reset" access="readWrite" version="2.19">
        <description>
          Set this to {{true}} to reset all this object's statistics counters
          to zero.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BytesSent" activeNotify="canDeny"
          id="mocaIfTxBytes/1.3.6.1.4.1.31621.1.2.1.8.1.8">
        <description>
          The total number of {{units}} transmitted out of the interface,
          including framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" activeNotify="canDeny"
          id="mocaIfRxBytes/1.3.6.1.4.1.31621.1.2.1.8.1.9">
        <description>
          The total number of {{units}} received on the interface, including
          framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" activeNotify="canDeny"
          id="mocaIfTxPackets/1.3.6.1.4.1.31621.1.2.1.8.1.1">
        <description>
          The total number of {{units}} transmitted out of the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" activeNotify="canDeny"
          id="mocaIfRxPackets/1.3.6.1.4.1.31621.1.2.1.8.1.3">
        <description>
          The total number of {{units}} received on the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} that could not be transmitted
          because of errors.

          This parameter MUST NOT be implemented for MoCA 2.0 because it
          doesn't map to a MIB object.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} that contained errors
          preventing them from being delivered to a higher-layer protocol.

          This parameter MUST NOT be implemented for MoCA 2.0 because it
          doesn't map to a MIB object.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="ErrorsReceived"
          id="mocaIfTxUnicast/1.3.6.1.4.1.31621.1.2.1.8.1.10">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" activeNotify="canDeny"
          id="mocaIfRxDrops/1.3.6.1.4.1.31621.1.2.1.8.1.5">
        <description>
          The total number of inbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="DiscardPacketsReceived"
          id="mocaIfTxMulticast/1.3.6.1.4.1.31621.1.2.1.8.1.12">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsReceived" activeNotify="canDeny"
          id="mocaIfRxUnicast/1.3.6.1.4.1.31621.1.2.1.8.1.11">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were not addressed to a multicast or broadcast
          address at this layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsReceived" activeNotify="canDeny"
          id="mocaIfRxMulticast/1.3.6.1.4.1.31621.1.2.1.8.1.13">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a multicast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsSent" activeNotify="canDeny"
          id="mocaIfTxBroadcast/1.3.6.1.4.1.31621.1.2.1.8.1.14">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsReceived" activeNotify="canDeny"
          id="mocaIfRxBroadcast/1.3.6.1.4.1.31621.1.2.1.8.1.15">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a broadcast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnknownProtoPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received via the interface which were
          discarded because of an unknown or unsupported protocol.

          This parameter MUST NOT be implemented for MoCA 2.0 because it
          doesn't map to a MIB object.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="RxCorrectedErrors" access="readOnly"
          activeNotify="canDeny"
          id="mocaIfRxCorrectedErrors/1.3.6.1.4.1.31621.1.2.1.8.1.4"
          version="2.17">
        <description>
          The number of received Ethernet packets that have errors and are
          corrected by this MoCA interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.MoCA.Interface.{i}.AccessControl.{i}."
        access="readWrite" minEntries="0" maxEntries="unbounded"
        numEntriesParameter="AccessControlNumberOfEntries"
        enableParameter="Enable"
        id="mocaIfAccessTable/1.3.6.1.4.1.31621.1.2.1.2" version="2.17">
      <description>
        MoCA interface MAC access control table. This table contains a list of
        MAC addresses that are allowed to connect to the MoCA network. In
        addition to being in this access control list, a MoCA Node must have
        the proper {{param|#.FreqCurrentMask}},
        {{param|#.PrivacyEnabledSetting}}, and {{param|#.KeyPassphrase}} before
        the MoCA Node can form or join a MoCA network.
      </description>
      <uniqueKey functional="true">
        <parameter ref="MACAddress"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables this MAC address to be allowed to connect to the
          MoCA network.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="true"/>
        </syntax>
      </parameter>

      <parameter name="MACAddress" access="readWrite"
          id="mocaIfAccessMacAddress/1.3.6.1.4.1.31621.1.2.1.2.1.2">
        <description>
          If {{param|#.AccessControlEnable}} is set to {{true}}, MoCA Node with
          this MAC address is allowed to join the MoCA network. It is not
          guaranteed that the MoCA Node with this MAC address can form or join
          a network.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.MoCA.Interface.{i}.Rlapm.{i}." access="readWrite"
        minEntries="0" maxEntries="unbounded"
        numEntriesParameter="RlapmNumberOfEntries" enableParameter="Enable"
        id="mocaIfRlapmTable/1.3.6.1.4.1.31621.1.2.1.3" version="2.17">
      <description>
        Interface RLAPM Table supporting the configuration of RLAPM (Receive
        Level Added PHY Margin) function parameters for the selected profile.

        The pairs [{{param|GlobalAggrRxPwrLevel}} (GARPLi ),
        {{param|PhyMargin}} (RLAPMi)] are used to determine the subcarriers'
        bitloadings according {{bibref|MoCAv2.0|section 7.15.2 and Table
        17-1}}.
      </description>
      <uniqueKey functional="true">
        <parameter ref="Profile"/>
        <parameter ref="Frequency"/>
        <parameter ref="GlobalAggrRxPwrLevel"/>
      </uniqueKey>

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

      <parameter name="Profile" access="readWrite"
          id="mocaIfRlapmProfile/1.3.6.1.4.1.31621.1.2.1.3.1.1">
        <description>
          Profile index used for the RLAPM (Receive Level Added PHY Margin)
          table.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="Frequency" access="readWrite"
          id="mocaIfRlapmFrequency/1.3.6.1.4.1.31621.1.2.1.3.1.2">
        <description>
          Frequency (band) index used for the RLAPM (Receive Level Added PHY
          Margin) table.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="GlobalAggrRxPwrLevel" access="readWrite"
          id="mocaIfRlapmGarpl/1.3.6.1.4.1.31621.1.2.1.3.1.3">
        <description>
          Global Aggregated Receive Power Level (GARPL).

          The parameter contains the "Ni" value, where GARPLi = -Ni dBm.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="PhyMargin" access="readWrite"
          id="mocaIfRlapmPhyMargin/1.3.6.1.4.1.31621.1.2.1.3.1.4">
        <description>
          Receive Level Added Phy Margin (RLAPM).

          The parameter contains the "Ni" value, where RLAPMi = 0.5*Ni dB.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="60"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly"
          id="mocaIfRlapmStatus/1.3.6.1.4.1.31621.1.2.1.3.1.5">
        <description>
          Reflects the status of a row in this table.
        </description>
        <syntax>
          <dataType ref="RowStatus"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.MoCA.Interface.{i}.Sapm.{i}." access="readWrite"
        minEntries="0" maxEntries="unbounded"
        numEntriesParameter="SapmNumberOfEntries" enableParameter="Enable"
        id="mocaIfSapmTable/1.3.6.1.4.1.31621.1.2.1.4" version="2.17">
      <description>
        Interface SAPM Table supporting the configuration of SAPM (Subcarrier
        Added PHY Margin) function parameters for the selected profile.

        When the aggregate received power level (ARPL) is below the
        pre-specified threshold {{param|AggrRxPwrLevelThreshold}}, for each
        subcarrier, its corresponding value on the list {{param|PhyMargin}}
        will be considered to determine the subcarriers' bitloading according
        {{bibref|MoCAv2.0|section 7.15.2 and Table 17-1}}.
      </description>
      <uniqueKey functional="true">
        <parameter ref="Profile"/>
        <parameter ref="Frequency"/>
      </uniqueKey>

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

      <parameter name="Profile" access="readWrite"
          id="mocaIfSapmProfile/1.3.6.1.4.1.31621.1.2.1.4.1.1">
        <description>
          Profile index used for the SAPM (Subcarrier Added PHY Margin) table.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="Frequency" access="readWrite"
          id="mocaIfSapmFrequency/1.3.6.1.4.1.31621.1.2.1.4.1.2">
        <description>
          Frequency (band) index used for the SAPM (Subcarrier Added PHY
          Margin) table.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="AggrRxPwrLevelThreshold" access="readWrite"
          id="mocaIfSapmARPLTHLD/1.3.6.1.4.1.31621.1.2.1.4.1.3">
        <description>
          Aggregate Received Power Level Threshold (ARPL_THLD).

          The parameter contains the "N" value, where ARPL_THLD = -N dBm.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="PhyMargin" access="readWrite"
          id="mocaIfSapmPhyMargin/1.3.6.1.4.1.31621.1.2.1.4.1.4">
        <description>
          Subcarrier Added PHY Margin (SAPM).

          List of SAPM values representing the PHY margin the Node is required
          to add to the bitloading of each of the available subcarriers when
          the received power level is below ARPL_THLD
          ({{param|AggrRxPwrLevelThreshold}}).

          Each value contains the "Ni" value for a OFDM subcarrier "i", where
          SAPMi = 0.5*Ni dB.
        </description>
        <syntax>
          <list/>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="120"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly"
          id="mocaIfSapmStatus/1.3.6.1.4.1.31621.1.2.1.4.1.5">
        <description>
          Reflects the status of a row in this table.
        </description>
        <syntax>
          <dataType ref="RowStatus"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.MoCA.Interface.{i}.Aca." access="readOnly"
        version="2.17" minEntries="1" maxEntries="1"
        id="mocaIfAcaTable/1.3.6.1.4.1.31621.1.2.1.5"
        dmr:previousObject="Device.MoCA.Interface.{i}.Sapm.{i}.">
      <description>
        This diagnostic test corresponds to the MoCA ACA (Alternate Channel
        Assessment) operation. When this test is
        {{enum|Requested|DiagnosticsState}} the managed MoCA Node will initiate
        a MoCA On Demand LMO (Link Maintenance Operation).
      </description>

      <parameter name="DiagnosticsState" access="readWrite"
          id="mocaIfAcaInitiate/1.3.6.1.4.1.31621.1.2.1.5.1.5                                                                 mocaIfAcaStatus/1.3.6.1.4.1.31621.1.2.1.5.1.6       mocaIfAcaStatusCompletedTrap/1.3.6.1.4.1.31621.1.2.1.5.1.9">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="DiagnosticsState">
            <enumeration value="None" access="readOnly"/>
            <enumeration value="Requested">
              <description>
                ACA operation requested and in progress.
              </description>
            </enumeration>
            <enumeration value="Canceled" optional="true"/>
            <enumeration value="Complete" access="readOnly">
              <description>ACA operation completed successfully.</description>
            </enumeration>
            <enumeration value="Error" access="readOnly">
              <description>ACA operation failed (''fail'').</description>
            </enumeration>
            <enumeration value="Error_BadChannel" access="readOnly">
              <description>
                ACA operation failed because of bad channel
                (''failBADCHANNEL'').
              </description>
            </enumeration>
            <enumeration value="Error_NoEvmProbe" access="readOnly">
              <description>
                ACA operation failed because there was no Evm probe detected
                (''failNOEVMPROBE'').
              </description>
            </enumeration>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="NodeID" access="readWrite"
          id="mocaIfAcaNodeID/1.3.6.1.4.1.31621.1.2.1.5.1.1">
        <description>
          The Node ID of the MoCA Node to transmit the EVM Probe when the
          parameter {{param|Type}} = {{enum|evm|Type}}.
        </description>
        <syntax>
          <dataType ref="MocaNodeID"/>
        </syntax>
      </parameter>

      <parameter name="Type" access="readWrite"
          id="mocaIfAcaType/1.3.6.1.4.1.31621.1.2.1.5.1.2">
        <description>
          The ACA (Alternate Channel Assessment) type is either {{enum|evm}} or
          {{enum|quiet}}.
        </description>
        <syntax>
          <string>
            <enumeration value="quiet"/>
            <enumeration value="evm"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Channel" access="readWrite"
          id="mocaIfAcaChannel/1.3.6.1.4.1.31621.1.2.1.5.1.3">
        <description>
          The channel number under assessment, starting from 0 in increments of
          25 MHz.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ReportNodeMask" access="readWrite"
          id="mocaIfAcaReportNodeMask/1.3.6.1.4.1.31621.1.2.1.5.1.4">
        <description>
          Specifies the MoCA Nodes that are requested to be part of the channel
          assessment: Setting bits corresponding to Node IDs of these MoCA
          Nodes to 1.

          See {{bibref|MoCAv2.0|Section 6.2.1}}
        </description>
        <syntax>
          <hexBinary>
            <size minLength="2" maxLength="2"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="TotalRxPower" access="readOnly"
          id="mocaIfAcaTotalRxPower/1.3.6.1.4.1.31621.1.2.1.5.1.7">
        <description>
          dBm (-128 to +127 dBm).
        </description>
        <syntax>
          <dataType ref="MocaDBm"/>
        </syntax>
      </parameter>

      <parameter name="PowerProfile" access="readOnly"
          id="mocaIfAcaPowerProfile/1.3.6.1.4.1.31621.1.2.1.5.1.8">
        <description>
          Binary string array with 1 byte (represented as two hexadecimal
          digits) for each subcarrier. See {{bibref|MOCA11-MIB|Appendix A}} for
          the encoding of this object.
        </description>
        <syntax>
          <hexBinary/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.MoCA.Interface.{i}.Reset." access="readOnly"
        minEntries="1" maxEntries="1"
        id="mocaIfMrTable/1.3.6.1.4.1.31621.1.2.1.6" version="2.17">
      <description>
        Used by the managed MoCA Node to initiate MoCA Reset Transaction.
      </description>

      <parameter name="NodeMask" access="readWrite"
          id="mocaIfMrNodeMask/1.3.6.1.4.1.31621.1.2.1.6.1.1">
        <description>
          The MoCA Nodes that must respond to the MR transaction L2ME request
          sent by the NC except for the MR Entry Node (LSB corresponds to Node
          ID 0x0).

          See {{bibref|MoCAv2.0|Section 6.2.1}}
        </description>
        <syntax>
          <hexBinary>
            <size minLength="2" maxLength="2"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="StartTime" access="readWrite"
          id="mocaIfMrStartTime/1.3.6.1.4.1.31621.1.2.1.6.1.2">
        <description>
          Time in seconds after this parameter is written that a MoCA Node must
          initiate a MoCA Reset (MR).

          See {{bibref|MoCAv2.0|Section 7.15}}.
        </description>
        <syntax command="true">
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="StatusTrapEnable" access="readWrite"
          id="mocaIfMrStatusTrapEnable/1.3.6.1.4.1.31621.1.2.1.6.1.3">
        <description>
          Used to enable {{param|#.MrRstSuccessTrap}} and
          {{param|#.MrRstFailTrap}} that the network reset was completed
          successfully or failed for MR transaction status trap.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="NetworkTrapEnable" access="readWrite"
          id="mocaIfMrNetworkTrapEnable/1.3.6.1.4.1.31621.1.2.1.6.1.4">
        <description>
          Used to enable {{param|#.MrNetworkSuccessTrap}} and
          {{param|#.MrNetworkFailTrap}} that the network was reformed or not
          reformed successfully following the MR transaction.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

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

      <parameter name="EgressNumFlows" access="readOnly"
          id="mocaIfEgressNodeNumFlows/1.3.6.1.4.1.31621.1.2.1.8.1.6">
        <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"
          id="mocaIfIngressNodeNumFlows/1.3.6.1.4.1.31621.1.2.1.8.1.7">
        <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" version="2.0">
      <description>
        The flow statistics table provides information on the MoCA
        parameterized QoS flows this interface has allocated onto the MoCA
        network.
      </description>
      <uniqueKey functional="true">
        <parameter ref="FlowID"/>
      </uniqueKey>

      <parameter name="FlowID" access="readOnly"
          id="mocaIfFlowID/1.3.6.1.4.1.31621.1.2.1.9.1.2">
        <description>
          The flow ID used to identify a flow in the network.

          This parameter is based on ''mocaIfFlowID'' from
          {{bibref|MOCA11-MIB}}.

          Note that the data type has changed from ''unsignedInt'' to
          ''MACAddress''. This is because the original data type was an error
          and could not have been implemented as specified.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="PacketDA" access="readOnly"
          id="mocaIfPacketDA/1.3.6.1.4.1.31621.1.2.1.9.1.3">
        <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"
          id="mocaIfPeakDataRate/1.3.6.1.4.1.31621.1.2.1.9.1.4">
        <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"
          id="mocaIfBurstSize/1.3.6.1.4.1.31621.1.2.1.9.1.5">
        <description>
          Maximum burst size.

          This parameter is based on ''mocaIfBurstSize'' from
          {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="LeaseTime" access="readOnly"
          id="mocaIfLeaseTime/1.3.6.1.4.1.31621.1.2.1.9.1.6">
        <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="Tag" access="readOnly"
          id="mocaIfFlowTag/1.3.6.1.4.1.31621.1.2.1.9.1.7" version="2.17">
        <description>
          The FLOW_TAG of the PQoS flow identified by {{param|FlowID}} in which
          this MoCA interface is an Ingress Node for this PQoS flow. The
          FLOW_TAG carries application specific content of this PQoS flow. See
          {{bibref|MoCAv2.0|Section 6.3.13.1}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="LeaseTimeLeft" access="readOnly" activeNotify="canDeny"
          id="mocaIfLeaseTimeLeft/1.3.6.1.4.1.31621.1.2.1.9.1.8">
        <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"
          id="mocaIfTxPacketsFlow/1.3.6.1.4.1.31621.1.2.1.9.1.9">
        <description>
          The number of packets transmitted for this flow.

          This parameter is based on ''mocaIfTxPacketsFlow'' from
          {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="IngressGuid" access="readOnly"
          id="mocaIfFlowStatsIngressGuid/1.3.6.1.4.1.31621.1.2.1.9.1.10"
          version="2.17">
        <description>
          The MAC address of the MoCA Node specified by the INGRESS_NODE_ID
          parameter of the flow.

          See {{bibref|MoCAv2.0|Section 6.3.13.1}}.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="EgressGuid" access="readOnly"
          id="mocaIfFlowStatsEgressGuid/1.3.6.1.4.1.31621.1.2.1.9.1.11"
          version="2.17">
        <description>
          The MAC address of the MoCA Node specified by the EGRESS_NODE_ID
          parameter of the flow.

          See {{bibref|MoCAv2.0|section 6.3.13.1}}.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="MaximumLatency" access="readOnly"
          id="mocaIfFlowStatsMaximumLatency/1.3.6.1.4.1.31621.1.2.1.9.1.12"
          version="2.17">
        <description>
          The MAXIMUM_LATENCY parameter of the flow in units of milliseconds. A
          value of 0 indicates no value available.

          See {{bibref|MoCAv2.0|section 6.3.13.1}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ShortTermAvgRatio" access="readOnly"
          id="mocaIfFlowStatsShortTermAvgRatio/1.3.6.1.4.1.31621.1.2.1.9.1.13"
          version="2.17">
        <description>
          The SHORT_TERM_AVERAGE_RATIO parameter of the flow.

          See {{bibref|MoCAv2.0|section 6.3.13.1}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="FlowPer" access="readOnly"
          id="mocaIfFlowStatsFlowPer/1.3.6.1.4.1.31621.1.2.1.9.1.15"
          version="2.17">
        <description>
          The FLOW_PER parameter of this flow, where a value of 0 indicates
          NPER and 1 indicates VLPER.

          See {{bibref|MoCAv2.0|section 6.3.13.1}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="IngressClassify" access="readOnly"
          id="mocaIfFlowStatsIngressClassify/1.3.6.1.4.1.31621.1.2.1.9.1.16"
          version="2.17">
        <description>
          The INGRESS_CLASSIFICATION_RULE parameter of the flow.

          See {{bibref|MoCAv2.0|section 6.3.13.1}}.
        </description>
        <syntax>
          <dataType ref="MocaFlowIngrClassRule"/>
        </syntax>
      </parameter>

      <parameter name="VlanTag" access="readOnly"
          id="mocaIfFlowStatsVlanTag/1.3.6.1.4.1.31621.1.2.1.9.1.17"
          version="2.17">
        <description>
          The VLAN_TAG parameter of the flow.

          See {{bibref|MoCAv2.0|section 6.3.13.1}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="DscpMoca" access="readOnly"
          id="mocaIfFlowStatsDscpMoca/1.3.6.1.4.1.31621.1.2.1.9.1.18"
          version="2.17">
        <description>
          The DSCP_MOCA parameter of the flow.

          See {{bibref|MoCAv2.0|section 6.3.13.1}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="Dfid" access="readOnly"
          id="mocaIfFlowStatsDfid/1.3.6.1.4.1.31621.1.2.1.9.1.19"
          version="2.17">
        <description>
          The destination flow ID of the flow assigned by the Ingress Node.

          See {{bibref|MoCAv2.0|section 7.8.1.2}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.MoCA.Interface.{i}.AssociatedDevice.{i}."
        access="readOnly" numEntriesParameter="AssociatedDeviceNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.0"
        id="mocaNodeTable/1.3.6.1.4.1.31621.1.2.1.11 mocaLinkStatsTable/1.3.6.1.4.1.31621.1.2.1.10">
      <description>
        This table contains information about other MoCA devices currently
        associated with this MoCA interface.

        Entries in this table cannot be created or deleted by the network
        management system. All entries are created or deleted by the device
        software.
      </description>
      <uniqueKey functional="true">
        <parameter ref="MACAddress"/>
      </uniqueKey>

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

      <parameter name="NodeID" access="readOnly"
          id="mocaNodeIndex/1.3.6.1.4.1.31621.1.2.1.11.1.1">
        <description>
          The Node ID of this remote device.

          This parameter is based on ''mocaNodeIndex'' from
          {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <dataType ref="MocaNodeID"/>
        </syntax>
      </parameter>

      <parameter name="PreferredNC" access="readOnly"
          id="mocaNodePreferredNC/1.3.6.1.4.1.31621.1.2.1.11.1.8">
        <description>
          Whether this remote device is a preferred Network Coordinator (NC).

          This parameter is based on ''mocaNodePreferredNC'' from
          {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <boolean/>
          <default type="factory" value="false"/>
        </syntax>
      </parameter>

      <parameter name="HighestVersion" access="readOnly"
          id="mocaNodeMocaVersion/1.3.6.1.4.1.31621.1.2.1.11.1.2">
        <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}}.

          This parameter MUST NOT be implemented for MoCA 2.0 because it
          doesn't map to a MIB object.
        </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.

          This parameter MUST NOT be implemented for MoCA 2.0 because it
          doesn't map to a MIB object.
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TxPowerControlReduction" access="readOnly"
          status="obsoleted"
          id="mocaNodeTxPowerReduction/1.3.6.1.4.1.31621.1.2.1.11.1.6">
        <description>
          The reduction in transmitter level due to power control.

          This parameter is based on ''mocaNodeTxPowerReduction'' from
          {{bibref|MOCA11-MIB}}.

          {{deprecated|2.17|since it is replaced by
          {{param|Device.MoCA.Interface.{i}.Mesh.{i}.PowerReduction}}. See
          {{bibref|MOCA20-MIB}}}}

          {{obsoleted|2.19}}
        </description>
        <syntax>
          <dataType ref="MocaDB"/>
        </syntax>
      </parameter>

      <parameter name="RxPowerLevel" access="readOnly" activeNotify="canDeny"
          status="obsoleted"
          id="mocaNodeRxPower/1.3.6.1.4.1.31621.1.2.1.11.1.7">
        <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}}.

          {{deprecated|2.17|since it is replaced by
          {{param|Device.MoCA.Interface.{i}.Mesh.{i}.Power}}. See
          {{bibref|MOCA20-MIB}}}}

          {{obsoleted|2.19}}
        </description>
        <syntax>
          <unsignedInt>
            <units value="dBm"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TxBcastRate" access="readOnly"
          id="mocaNodeTxGcdRate/1.3.6.1.4.1.31621.1.2.1.11.1.4">
        <description>
          The broadcast PHY transmit rate from this remote device.

          This parameter is based on ''mocaNodeTxGcdRate'' from
          {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <dataType ref="MocaPhyRate"/>
        </syntax>
      </parameter>

      <parameter name="RxBcastPowerLevel" access="readOnly"
          activeNotify="canDeny"
          id="mocaNodeRxGcdPower/1.3.6.1.4.1.31621.1.2.1.11.1.5">
        <description>
          The power level received at the MoCA interface from this remote
          device.

          This parameter is based on ''mocaNodeRxGcdPower'' from
          {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <dataType ref="MocaDBm"/>
        </syntax>
      </parameter>

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

      <parameter name="TxDrops" access="readOnly"
          id="mocaLinkTxDrops/1.3.6.1.4.1.31621.1.2.1.10.1.3" version="2.17">
        <description>
          The number of Unicast EPDUs received at the ECL, destined to the
          associated MoCA Node, and not transmitted by this MoCA interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="RxPackets" access="readOnly" activeNotify="canDeny"
          id="mocaNodeRxPackets/1.3.6.1.4.1.31621.1.2.1.11.1.11">
        <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>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="RxCorrected" access="readOnly"
          id="mocaNodeRxCorrected/1.3.6.1.4.1.31621.1.2.1.11.1.12"
          version="2.17">
        <description>
          The number of Ethernet packets received by this MoCA interface that
          have errors and are corrected from the MoCA Node identified by
          {{param|MACAddress}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="RxErroredAndMissedPackets" access="readOnly"
          id="mocaNodeRxDrops/1.3.6.1.4.1.31621.1.2.1.11.1.13">
        <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>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="BondingCapable" access="readOnly"
          id="mocaNodeBondingCapable/1.3.6.1.4.1.31621.1.2.1.11.1.9"
          version="2.17">
        <description>
          The MoCA Node identified by {{param|MACAddress}} supports Bonding if
          the value is {{true}}. The MoCA Node identified by
          {{param|MACAddress}} does not support Bonding if this value is
          {{false}}.
        </description>
        <syntax>
          <boolean/>
        </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}}.

          This parameter MUST NOT be implemented for MoCA 2.0 because it
          doesn't map to a MIB object.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="PacketAggregationCapability" access="readOnly"
          id="mocaNodePduNumber/1.3.6.1.4.1.31621.1.2.1.11.1.10">
        <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}}.

          Note that this parameter maps to different MIB objects for MoCA
          1.0/1.1 and MoCA 2.0. [XXX2: Need to modify the syntax to
          'unsignedInt' because MoCA 2.0 requires a minimum of 20 packets and
          MoCA 2.5 requires a minimum of 80 packets.]
        </description>
        <syntax>
          <unsignedInt>
            <units value="packets"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RxSNR" access="readOnly" status="obsoleted"
          id="mocaNodeSNR/1.3.6.1.4.1.31621.1.2.1.11.1.14">
        <description>
          The signal to noise level received at this interface from this remote
          device.

          This parameter is based on ''mocaNodeSNR'' from
          {{bibref|MOCA11-MIB}}.

          {{deprecated|2.17|since it is replaced by
          {{param|Device.MoCA.Interface.{i}.Mesh.{i}.RxSNR}}. See
          {{bibref|MOCA20-MIB}}}}

          {{obsoleted|2.19}}
        </description>
        <syntax>
          <dataType ref="MocaDB"/>
        </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>

      <parameter name="SupportedIngressPqosFlows" access="readOnly"
          id="mocaNodeSupportedIngressPqosFlows/1.3.6.1.4.1.31621.1.2.1.11.1.15"
          version="2.17">
        <description>
          The number of Ingress PQoS Flows supported by this MoCA interface
          from the MoCA Node identified by {{param|MACAddress}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SupportedEgressPqosFlows" access="readOnly"
          id="mocaNodeSupportedEgressPqosFlows/1.3.6.1.4.1.31621.1.2.1.11.1.16"
          version="2.17">
        <description>
          The number of Egress PQoS Flows supported by this MoCA interface from
          the MoCA Node identified by {{param|MACAddress}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="AggregationSize" access="readOnly"
          id="mocaNodeAggregationSize/1.3.6.1.4.1.31621.1.2.1.11.1.17"
          version="2.17">
        <description>
          The maximum number of bytes that can be aggregated in a MoCA frame
          that this MoCA Node supports.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="AeNumber" access="readOnly"
          id="mocaNodeAeNumber/1.3.6.1.4.1.31621.1.2.1.11.1.18" version="2.17">
        <description>
          The maximum number of allocation elements, excluding the TAUs and the
          Dummy DAUs, in one MAP that this MoCA Node supports.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PowerState" access="readOnly"
          id="mocaNodePowerState/1.3.6.1.4.1.31621.1.2.1.11.1.19"
          version="2.17">
        <description>
          Power State of the MoCA Node identified by the {{param|MACAddress}}.
        </description>
        <syntax>
          <dataType ref="MocaPowerState"/>
        </syntax>
      </parameter>

      <parameter name="PowerStateCapability" access="readOnly"
          id="mocaNodePowerStateCapability/1.3.6.1.4.1.31621.1.2.1.11.1.20"
          version="2.17">
        <description>
          Power State capability of the MoCA Node identified by the
          {{param|MACAddress}}.
        </description>
        <syntax>
          <dataType ref="MocaPowerState"/>
        </syntax>
      </parameter>

      <parameter name="PDelay" access="readOnly"
          id="mocaNodePDelay/1.3.6.1.4.1.31621.1.2.1.11.1.21" version="2.17">
        <description>
          Propagation delay measured in units of 10ns between the local MoCA
          Node and the MoCA Node identified by the {{param|MACAddress}}.
        </description>
        <syntax>
          <int/>
        </syntax>
      </parameter>

      <parameter name="EnhancedPrivacyCapable" access="readOnly"
          id="moca25NodeEnhancedPrivacyCapable/1.3.6.1.4.1.31621.1.3.1.3.1.2"
          version="2.17">
        <description>
          Indicates the MoCA Node identified by {{param|MACAddress}} supports
          MoCA 2 Enhanced Privacy if the value is {{true}}. Indicates the MoCA
          Node identified by {{param|MACAddress}} does not support MoCA 2
          Enhanced Privacy if this value is {{false}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="LinkType" access="readOnly"
          id="moca25NodeLinkType/1.3.6.1.4.1.31621.1.3.1.3.1.3" version="2.17">
        <description>
          Indicates the type of link used for unicast data transmissions
          between the managed MoCA Node and the MoCA Node identified by
          {{param|MACAddress}}.
        </description>
        <syntax>
          <string>
            <enumeration value="moca1PHY">
              <description>MoCA 1 PHY.</description>
            </enumeration>
            <enumeration value="primary">
              <description>Primary.</description>
            </enumeration>
            <enumeration value="bonded">
              <description>Bonded.</description>
            </enumeration>
            <enumeration value="m25300MHz">
              <description>300 MHz MoCA 2.5 PHY.</description>
            </enumeration>
            <enumeration value="m25400MHz">
              <description>400 MHz MoCA 2.5 PHY.</description>
            </enumeration>
            <enumeration value="m25500MHz">
              <description>500 MHz MoCA 2.5 PHY.</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="Moca25PhyCapable" access="readOnly"
          id="moca25NodeMoca25PhyCapable/1.3.6.1.4.1.31621.1.3.1.3.1.4"
          version="2.17">
        <description>
          Indicates the MoCA Node identified by {{param|MACAddress}} supports
          MoCA 2.5 PHY if the value is {{true}}. Indicates the MoCA Node
          identified by {{param|MACAddress}} does not support MoCA 2.5 PHY if
          this value is {{false}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="RxPwrList" access="readOnly"
          id="moca25NodeRxPwrList/1.3.6.1.4.1.31621.1.3.1.3.1.5" version="2.17">
        <description>
          Per channel list of Receive power levels in dBm from the MoCA Node
          identified by {{param|MACAddress}} to the managed MoCA Node.

          The power measurement should cover the preamble and/or at least a
          symbol time. The averaging method employed for this measurement is
          implementation specific and not specified. It is recommended but not
          required to utilize the LMO (Link Maintenance Operation) EVM probes
          for this measurement.

          The field numValues is a function of {{param|LinkType}}:

          * MoCA 1 PHY - 1

          * Primary - 1

          * Bonded - 2

          * 300 MHz MoCA 2.5 PHY - 3

          * 400 MHz MoCA 2.5 PHY - 4

          * 500 MHz MoCA 2.5 PHY - 5

              struct moca25NodePowerList { char numValues; // 1 octet (Number
              of Values to follow) struct { char power; // 1 octet (Rx Power
              Level in dBm) } [numValues]; };
        </description>
        <syntax>
          <string>
            <size minLength="2" maxLength="6"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="RxSNRList" access="readOnly"
          id="moca25NodeRxSNRList/1.3.6.1.4.1.31621.1.3.1.3.1.6" version="2.17">
        <description>
          Per channel list of Average Receive Signal to Noise Ratio (SNR)
          across all available subcarriers based on the EVM probe from the MoCA
          Node identified by {{param|MACAddress}} to the managed MoCA Node.

          The field numValues is a function of {{param|LinkType}}:

          * MoCA 1 PHY - 1

          * Primary - 1

          * Bonded - 2

          * 300 MHz MoCA 2.5 PHY - 3

          * 400 MHz MoCA 2.5 PHY - 4

          * 500 MHz MoCA 2.5 PHY - 5

              struct moca25NodeRxSNRList { char numValues; // 1 octet (Number
              of Values to follow) struct { char snr; // 1 octet (Rx SNR in dB)
              } [numValues]; };
        </description>
        <syntax>
          <string>
            <size minLength="2" maxLength="6"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="TxPwrList" access="readOnly"
          id="moca25NodeTxPwrList/1.3.6.1.4.1.31621.1.3.1.3.1.7" version="2.17">
        <description>
          Per channel list of Transmit power levels in dBm from the managed
          MoCA Node to the MoCA Node identified by {{param|MACAddress}}. The
          transmit power should be max power for the channel less the Transmit
          Power Control.

          The field numValues is a function of {{param|LinkType}}:

          * MoCA 1 PHY - 1

          * Primary - 1

          * Bonded - 2

          * 300 MHz MoCA 2.5 PHY - 3

          * 400 MHz MoCA 2.5 PHY - 4

          * 500 MHz MoCA 2.5 PHY - 5

              struct moca25NodePowerList { char numValues; // 1 octet (Number
              of Values to follow) struct { char power; // 1 octet (Tx Power
              Level in dBm) } [numValues]; };
        </description>
        <syntax>
          <string>
            <size minLength="2" maxLength="6"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="TxPwrReductionList" access="readOnly"
          id="moca25NodeTxPwrReductionList/1.3.6.1.4.1.31621.1.3.1.3.1.8"
          version="2.17">
        <description>
          Per channel list of Transmit Power Control (TPC) back-off in dB used
          for unicast transmissions from the managed MoCA Node to the MoCA Node
          identified by {{param|MACAddress}}.

          {{param}} is identical to the TPC back-off utilized for transmission
          from the TPC backoff parameter TX_POWER_ADJUSTMENT_100MHZ.

          The field numValues is a function of {{param|LinkType}}:

          * MoCA 1 PHY - 1

          * Primary - 1

          * Bonded - 2

          * 300 MHz MoCA 2.5 PHY - 3

          * 400 MHz MoCA 2.5 PHY - 4

          * 500 MHz MoCA 2.5 PHY - 5

              struct moca25NodeTxPwrReductionList { char numValues; // 1 octet
              (Number of Values to follow) struct { char tpc; // 1 octet (TPC
              in dB) } [numValues]; };
        </description>
        <syntax>
          <string>
            <size minLength="2" maxLength="6"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="EgressNodeNumFlows" access="readOnly"
          id="mocaLinkEgressNodeNumFlows/1.3.6.1.4.1.31621.1.2.1.10.1.4"
          version="2.17">
        <description>
          The number of PQoS flows in which this MoCA interface is an Egress
          Node for these PQoS flows.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="IngressNodeNumFlows" access="readOnly"
          id="mocaLinkIngressNodeNumFlows/1.3.6.1.4.1.31621.1.2.1.10.1.5"
          version="2.17">
        <description>
          The number of PQoS flows in which this MoCA interface is an Ingress
          Node for these PQoS flows.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.MoCA.Interface.{i}.Mesh.{i}." access="readOnly"
        minEntries="0" maxEntries="unbounded"
        numEntriesParameter="MeshNumberOfEntries"
        id="mocaMeshTable/1.3.6.1.4.1.31621.1.2.1.12" version="2.17">
      <description>
        MoCA mesh PHY rate table. This table contains the unicast transmit PHY
        rate between all pairs of MoCA Nodes in the MoCA network.

        Since {{param|TxRate}} is the transmit PHY rate from
        {{param|TxNodeIndex}} to {{param|RxNodeIndex}}, this table does not
        contain any entries with {{param|TxNodeIndex}} equals
        {{param|RxNodeIndex}}. In addition, a MoCA network can have less than
        16 Nodes, hence some values of {{param|TxNodeIndex}} and
        {{param|RxNodeIndex}} in the range of 0 to 15 may not exist.

        Entries in this table cannot be created or deleted by the network
        management system. All entries are created or deleted by the device
        software.
      </description>
      <uniqueKey functional="true">
        <parameter ref="TxNodeIndex"/>
        <parameter ref="RxNodeIndex"/>
      </uniqueKey>

      <parameter name="TxNodeIndex" access="readOnly"
          id="mocaMeshTableTxNodeIndex/1.3.6.1.4.1.31621.1.2.1.12.1.1">
        <description>
          The Node ID of the transmit MoCA Node is used as one of the index to
          order the mesh PHY rate table.
        </description>
        <syntax>
          <dataType ref="MocaNodeID"/>
        </syntax>
      </parameter>

      <parameter name="RxNodeIndex" access="readOnly"
          id="mocaMeshTableRxNodeIndex/1.3.6.1.4.1.31621.1.2.1.12.1.2">
        <description>
          The Node ID of the receive MoCA Node is used as one of the index to
          order the mesh PHY rate table.
        </description>
        <syntax>
          <dataType ref="MocaNodeID"/>
        </syntax>
      </parameter>

      <parameter name="TxRate" access="readOnly"
          id="mocaMeshTxRate/1.3.6.1.4.1.31621.1.2.1.12.1.3">
        <description>
          The transmit MoCA 1 PHY rate in Mbps from the MoCA Node identified by
          {{param|TxNodeIndex}} to the MoCA Node identified by
          {{param|RxNodeIndex}}.
        </description>
        <syntax>
          <dataType ref="MocaPhyRate"/>
        </syntax>
      </parameter>

      <parameter name="TxRateNper" access="readOnly"
          id="mocaMeshTxRateNper/1.3.6.1.4.1.31621.1.2.1.12.1.4">
        <description>
          The transmit normal packet error PHY Rate from the MoCA Node
          identified by {{param|TxNodeIndex}} to the MoCA Node identified by
          {{param|RxNodeIndex}}.
        </description>
        <syntax>
          <dataType ref="MocaPhyRate"/>
        </syntax>
      </parameter>

      <parameter name="TxRateVlper" access="readOnly"
          id="mocaMeshTxRateVlper/1.3.6.1.4.1.31621.1.2.1.12.1.5">
        <description>
          The transmit very low packet error PHY Rate from the MoCA Node
          identified by {{param|TxNodeIndex}} to the MoCA Node identified by
          {{param|RxNodeIndex}}.
        </description>
        <syntax>
          <dataType ref="MocaPhyRate"/>
        </syntax>
      </parameter>

      <parameter name="LinkType" access="readOnly"
          id="mocaMeshLinkType/1.3.6.1.4.1.31621.1.2.1.12.1.6">
        <description>
          The type of link which exists from the MoCA Node identified by
          {{param|TxNodeIndex}} to the MoCA Node identified by
          {{param|RxNodeIndex}}. {{enum}}

          This parameter is only used for MoCA 2.0.
        </description>
        <syntax>
          <string>
            <enumeration value="moca1PHY" code="0"/>
            <enumeration value="primary" code="1"/>
            <enumeration value="bonded" code="2"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Power" access="readOnly"
          id="mocaMeshPower/1.3.6.1.4.1.31621.1.2.1.12.1.7">
        <description>
          Per channel list of Transmit or Receive power levels in dBm. If the
          MoCA Node identified by {{param|TxNodeIndex}} is equal to
          {{param|#.NodeID}}, then indicates the unicast transmit power in dBm
          from the MoCA Node identified by {{param|TxNodeIndex}} to the MoCA
          Node identified by {{param|RxNodeIndex}}, else indicates the unicast
          receive power in dBm from the MoCA Node identified by
          {{param|TxNodeIndex}} at the MoCA Node identified by
          {{param|RxNodeIndex}}.

          For transmit power, the power should be max power for the channel
          less the Transmit Power Control. For received power, the power
          measurement should cover the preamble and/or at least a symbol time.
          The averaging method employed for this measurement is implementation
          specific and not specified. It is recommended but not required to
          utilize the LMO (Link Maintenance Operation) EVM probes for this
          measurement.

          The field ''numValues'' is a function of {{param|LinkType}}:

          * {{enum|moca1PHY|LinkType}} - 1

          * {{enum|primary|LinkType}} - 1

          * {{enum|bonded|LinkType}} - 2

              struct mocaPower { char numValues; // 1 octet (Number of Values
              to follow) { char power; // 1 octet (Tx or Rx Power Level in dB)
              } [numValues]; };

          This parameter is only used for MoCA 2.0.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="2" maxLength="3"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="PowerReduction" access="readOnly"
          id="mocaMeshPowerReduction/1.3.6.1.4.1.31621.1.2.1.12.1.8">
        <description>
          Per channel list of The Transmit Power Control (TPC) back-off in dB.
          If the MoCA Node identified by {{param|TxNodeIndex}} is equal to
          {{param|#.NodeID}}, then indicates the TPC in dB utilized to back-off
          transmission to the MoCA Node identified by {{param|RxNodeIndex}}.
          Otherwise indicates the TPC in dB that the MoCA Node identified by
          {{param|TxNodeIndex}} utilized to back-off its transmission.

          {{param}} is identical to the TPC back-off utilized for transmission
          and determined from the TPC backoff parameters TPC_BACKOFF_MAJOR and
          TPC_BACKOFF_MINOR as follows: {{param}} = TPC_BACKOFF_MAJOR * 3
          +TPC_BACKOFF_MINOR.

          The field ''numValues'' is a function of {{param|LinkType}}:

          * {{enum|moca1PHY|LinkType}} - 1

          * {{enum|primary|LinkType}} - 1

          * {{enum|bonded|LinkType}} - 2

              struct mocaPowerReduction { char numValues; // 1 octet (Number of
              Values to follow) { char tpc; // 1 octet (TPC in dB) }
              [numValues]; };

          This parameter is only used for MoCA 2.0.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="2" maxLength="3"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="RxSNR" access="readOnly"
          id="mocaMeshRxSNR/1.3.6.1.4.1.31621.1.2.1.12.1.9">
        <description>
          Per channel list of average received Signal to Noise Ratio (SNR) in
          dB. If the MoCA Node identified by {{param|RxNodeIndex}} is not equal
          to {{param|#.NodeID}} or the MoCA Node identified by
          {{param|TxNodeIndex}} is equal to {{param|#.NodeID}}, then this
          parameter is not present. Otherwise indicates the average received
          SNR across all the available carriers based on the EVM probe from the
          MoCA Node identified by {{param|TxNodeIndex}}.

          The field ''numValues'' is a function of {{param|LinkType}}:

          * {{enum|moca1PHY|LinkType}} - 1

          * {{enum|primary|LinkType}} - 1

          * {{enum|bonded|LinkType}} - 2

              struct mocaRxSNR { char numValues; // 1 octet (Number of Values
              to follow) { char rx_snr; // 1 octet (Rx SNR in dB) }
              [numValues]; };

          This parameter is only used for MoCA 2.0.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="2" maxLength="3"/>
          </hexBinary>
        </syntax>
      </parameter>
    </object>

    <object name="Device.MoCA.Interface.{i}.Bridge.{i}." access="readOnly"
        minEntries="0" maxEntries="unbounded"
        numEntriesParameter="BridgeNumberOfEntries"
        id="mocaBridgeTable/1.3.6.1.4.1.31621.1.2.1.13" version="2.17">
      <description>
        MoCA bridge Ethernet MAC address table. This table contains an entry
        for every MoCA Node in the MoCA network.

        Entries in this table cannot be created or deleted by the network
        management system. All entries are created or deleted by the device
        software.
      </description>
      <uniqueKey functional="true">
        <parameter ref="NodeIndex"/>
      </uniqueKey>

      <parameter name="NodeIndex" access="readOnly"
          id="mocaBridgeNodeIndex/1.3.6.1.4.1.31621.1.2.1.13.1.1">
        <description>
          The Node ID is used as an index to order the MAC entries in the MoCA
          bridge table.
        </description>
        <syntax>
          <dataType ref="MocaNodeID"/>
        </syntax>
      </parameter>

      <parameter name="MACAddresses" access="readOnly"
          id="mocaBridgeMacAddress/1.3.6.1.4.1.31621.1.2.1.13.1.3">
        <description>
          The Ethernet MAC addresses identified by the Node ID.
        </description>
        <syntax>
          <list/>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.MoCA.Interface.{i}.MeshScMod.{i}." access="readOnly"
        minEntries="0" maxEntries="unbounded"
        numEntriesParameter="MeshScModNumberOfEntries"
        id="mocaMeshScModTable/1.3.6.1.4.1.31621.1.2.1.14" version="2.17">
      <description>
        MoCA mesh Subcarrier Modulation table. This table contains the Unicast
        transmit subcarrier modulation between all pairs of MoCA Nodes in the
        MoCA network.

        Since {{param|Mod}} is the subcarrier modulation from
        {{param|TxNodeIndex}} to {{param|RxNodeIndex}}, this table does not
        contain any entries with {{param|TxNodeIndex}} equals
        {{param|RxNodeIndex}}. In addition, a MoCA network can have less than
        16 MoCA Nodes, hence some values of {{param|TxNodeIndex}} and
        {{param|RxNodeIndex}} in the range of 0 to 15 may not exist. The
        {{param|ChannelIndex}} index is used to differentiate between the
        primary and secondary channels in a bonded channel network. The primary
        channel index is always present, the secondary channel index may not
        always be present.

        Entries in this table cannot be created or deleted by the network
        management system. All entries are created or deleted by the device
        software.
      </description>
      <uniqueKey functional="true">
        <parameter ref="TxNodeIndex"/>
        <parameter ref="RxNodeIndex"/>
        <parameter ref="ChannelIndex"/>
      </uniqueKey>

      <parameter name="TxNodeIndex" access="readOnly"
          id="mocaMeshTxNodeIndex/1.3.6.1.4.1.31621.1.2.1.14.1.1">
        <description>
          The Node ID of the transmit MoCA Node is used as one of the index to
          order the mesh PHY rate table.
        </description>
        <syntax>
          <dataType ref="MocaNodeID"/>
        </syntax>
      </parameter>

      <parameter name="RxNodeIndex" access="readOnly"
          id="mocaMeshRxNodeIndex/1.3.6.1.4.1.31621.1.2.1.14.1.2">
        <description>
          The Node ID of the receive MoCA Node is used as one of the index to
          order the mesh subcarrier modulation.
        </description>
        <syntax>
          <dataType ref="MocaNodeID"/>
        </syntax>
      </parameter>

      <parameter name="ChannelIndex" access="readOnly"
          id="mocaMeshChannelIndex/1.3.6.1.4.1.31621.1.2.1.14.1.3">
        <description>
          {{enum|primary}} or {{enum|secondary}} channel for MoCA 2.0 Node
          associated with {{param|Nper}} and {{param|Vlper}}. For MoCA 1 Node,
          the same as the {{enum|primary}} channel associated with
          {{param|Mod}}. In a bonded MoCA 2.0 network, the {{enum|primary}} and
          {{enum|secondary}} channels each have their own subcarrier modulation
          data.

          {{enum|m25first}}, {{enum|m25second}}, {{enum|m25third}},
          {{enum|m25fourth}} or {{enum|m25fifth}} channel for MoCA 2.5 Node
          associated with {{param|ModM25}}.
        </description>
        <syntax>
          <dataType ref="MocaChannelIndex"/>
        </syntax>
      </parameter>

      <parameter name="Mod" access="readOnly"
          id="mocaMeshScMod/1.3.6.1.4.1.31621.1.2.1.14.1.4">
        <description>
          1 Byte Hex array values with no delimiters where each byte indicates
          the subcarrier modulation of one subcarrier from the MoCA Node
          identified by {{param|TxNodeIndex}} to the MoCA Node identified by
          {{param|RxNodeIndex}} for the MoCA 1 Unicast transmission PHY
          profile.
        </description>
        <syntax>
          <dataType ref="MocaScMod"/>
        </syntax>
      </parameter>

      <parameter name="Nper" access="readOnly"
          id="mocaMeshScModNper/1.3.6.1.4.1.31621.1.2.1.14.1.5">
        <description>
          1 Byte Hex array values with no delimiters where each byte indicates
          the unicast NPER subcarrier modulation of one subcarrier from the
          MoCA Node identified by {{param|TxNodeIndex}} to the MoCA Node
          identified by {{param|RxNodeIndex}} for the associated
          {{param|ChannelIndex}}.
        </description>
        <syntax>
          <dataType ref="MocaScMod"/>
        </syntax>
      </parameter>

      <parameter name="Vlper" access="readOnly"
          id="mocaMeshScModVlper/1.3.6.1.4.1.31621.1.2.1.14.1.6">
        <description>
          1 Byte Hex array values with no delimiters where each byte indicates
          the unicast VLPER subcarrier modulation of one subcarrier from the
          MoCA Node identified by {{param|TxNodeIndex}} to the MoCA Node
          identified by {{param|RxNodeIndex}} for the associated
          {{param|ChannelIndex}}.
        </description>
        <syntax>
          <dataType ref="MocaScMod"/>
        </syntax>
      </parameter>

      <parameter name="ModM25" access="readOnly"
          id="mocaMeshScModM25/1.3.6.1.4.1.31621.1.3.1.4.1.4">
        <description>
          1 Byte Hex array values with no delimiters where each byte indicates
          the MoCA 2.5 unicast subcarrier modulation for all subcarriers from
          the MoCA Node identified by {{param|TxNodeIndex}} to the MoCA Node
          identified by {{param|RxNodeIndex}} for the associated
          {{param|ChannelIndex}}.

          For MoCA 2.5 First Channel, Second Channel, Third Channel, Fourth
          Channel and Fifth Channel, the total number of subcarriers is 512.
        </description>
        <syntax>
          <dataType ref="MocaScMod"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Ghn." access="readOnly" minEntries="1" maxEntries="1"
        version="2.4">
      <description>
        G.hn object that contains an {{object|Interface}} table for G.hn
        supported CPE. The ITU-T G.hn specifications {{bibref|G.9960}} and
        {{bibref|G.9961}} define Physical and MAC Layers for communication
        between two or more G.hn nodes in the home network over multiple wired
        media such as power line, phone line and coaxial cable.
      </description>

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

    <object name="Device.Ghn.Interface.{i}."
        numEntriesParameter="InterfaceNumberOfEntries" minEntries="0"
        maxEntries="unbounded" dmr:fixedObject="true" version="2.4">
      <description>
        G.hn interface table (a stackable interface object as described in
        {{bibref|TR-181i2|Section 4.2}}). Each table entry models the PHY
        {{bibref|G.9960}} and MAC {{bibref|G.9961}} layers of a G.hn 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">
        <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}}.

          Because the interface includes layer 1, the {{enum|LowerLayerDown}}
          value SHOULD never be used.
        </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" version="2.4">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name">
        <description>
          The textual name of the interface as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" 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">
        <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">
        <description>
          The maximum upstream and downstream PHY bit rate supported by this
          interface (expressed in {{units}}).
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MACAddress" access="readOnly">
        <description>
          The MAC Address of the interface, denoted as node MAC address or
          REGID in {{bibref|G.9961}}.

          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>
          The firmware version of the interface.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ConnectionType" access="readOnly" status="deleted">
        <description>
          {{deprecated|2.8|because it has been replaced by
          {{param|MediumType}}}}

          {{obsoleted|2.14}}

          {{deleted|2.15}}
        </description>
        <syntax>
          <string>
            <enumeration value="Powerline"/>
            <enumeration value="Phone"/>
            <enumeration value="Coax"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="MaxTransmitRate" access="readOnly" version="2.8">
        <description>
          The maximum PHY data rate that the interface is capable of
          transmitting (expressed in {{units}}).
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TargetDomainNames" access="readWrite">
        <description>
          {{list}} Identifies the target domains configured by the user, as
          described in {{bibref|G.9961|Section 8.6.1}}. When registering or
          re-registering, the G.hn interface SHOULD try to register to one of
          these domains in the given order.
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string>
            <size maxLength="32"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="DomainName" access="readOnly">
        <description>
          This is the domain name to which the interface is currently
          registered.

          {{empty}} indicates that the interface is currently not registered.
        </description>
        <syntax>
          <string>
            <size maxLength="32"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="DomainNameIdentifier" access="readOnly">
        <description>
          The Domain Name Identifier, a shortened version of
          {{param|DomainName}}, denoted as DNI in {{bibref|G.9961|Section
          8.6.11.2.1}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="DomainId" access="readOnly">
        <description>
          The Domain Identifier of the domain to which the interface is
          registered, denoted as DOD in {{bibref|G.9961}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="DeviceId" access="readOnly">
        <description>
          The Device Identifier assigned by the Domain Master, denoted as
          DEVICE_ID in {{bibref|G.9961}}.

          The value 0 indicates that the device is not currently registered.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="NodeTypeDMCapable" access="readOnly">
        <description>
          Indicates whether this interface has the capability to act as Domain
          Master in the G.hn domain.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="DMRequested" access="readWrite" version="2.8">
        <description>
          Indicates a request to force the role of the G.hn interface to Domain
          Master (DM) for the G.hn domain it is connected to. The selection of
          the Domain Master follows the procedures described in
          {{bibref|G.9961|Clause 8.6.6}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="IsDM" access="readOnly" version="2.8">
        <description>
          Indicates whether this G.hn interface is currently the Domain Master
          (DM) for the G.hn domain it is connected to, as described in
          {{bibref|G.9961|Clause 8.6}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="NodeTypeSCCapable" access="readOnly">
        <description>
          Indicates whether this interface has the capability to act as
          Security Controller in the G.hn domain.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="SCRequested" access="readWrite" version="2.8">
        <description>
          Indicates a request to force the role of the G.hn interface to
          Security Controller (SC) for the G.hn domain it is connected to. The
          selection of the Security Controller follows the procedures described
          in {{bibref|G.9961|Clause 9.2}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="IsSC" access="readOnly" version="2.8">
        <description>
          Indicates whether this G.hn interface is currently the Security
          Controller (SC) for the G.hn domain it is connected to, as described
          in {{bibref|G.9961|Clause 9.2}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="StandardVersions" access="readOnly" version="2.8">
        <description>
          The standard versions that the interface supports. The list MUST have
          an even number of items. The first item of each pair represents an
          ITU-T G.hn Recommendation while the second element of each pair
          represents the amendment version of the indicated Recommendation that
          this interface supports (the value 0 corresponds to the base
          Recommendation).

          For example, to indicate support for the G.9960 base document and
          G.9961 amendment 1, the corresponding list would be
          "G9960,0,G9961,1".
        </description>
        <syntax>
          <list/>
          <string/>
        </syntax>
      </parameter>

      <parameter name="MaxBandPlan" access="readOnly" version="2.8">
        <description>
          The largest bandplan that the interface can support, as defined in
          {{bibref|G.9961|Clause 8.8.5.5}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MediumType" access="readOnly" version="2.8">
        <description>
          The medium type that the interface currently operates on. Refer to
          {{bibref|G.9962|Table 7-5}}.
        </description>
        <syntax>
          <string>
            <enumeration value="PowerLineBaseband"/>
            <enumeration value="PhoneLineBaseband"/>
            <enumeration value="CoaxBaseband"/>
            <enumeration value="CoaxRF"/>
            <enumeration value="PlasticOpticalFiber"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="TAIFG" access="readOnly" version="2.8">
        <description>
          The Acknowledgement InterFrame Gap, or TAIFG, as defined in
          {{bibref|G.9961|Clause 8.4}}. It is represented as multiples of
          {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="1.28 microseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="NotchedAmateurRadioBands" access="readWrite"
          version="2.8">
        <description>
          A bit map representing usage of international amateur bands (0 =
          masked, 1 = unmasked). The LSB represents the lowest band (1.8-2.0
          MHz), the second LSB represents the second lowest band (3.5-4.0 MHz),
          and so on. The maximum value for this parameter is 0x03FF, i.e. it is
          a 10-bit quantity represented in 16 bits and the top 6 bits are
          always zero.

          International Radio amateur bands are described in
          {{bibref|G.9964|Table D-1}} and conveyed by the Domain Master in the
          Amateur radio band descriptor (see {{bibref|G.9961|Table 8-77}}).
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="2"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="PHYThroughputDiagnosticsEnable" access="readWrite"
          version="2.8">
        <description>
          {{nolist}}

          Comma-separated list of DeviceIDs of nodes that need to enable their
          PHY throughput diagnostics mode. All devices that are enabled will
          participate in the G.hn network PHY throughput diagnostics process.
        </description>
        <syntax>
          <list/>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PerformanceMonitoringDiagnosticsEnable"
          access="readWrite" version="2.8">
        <description>
          {{nolist}}

          Comma-separated list of DeviceIDs of nodes that need to enable their
          Performance Monitoring diagnostics mode on this node. All devices
          that are enabled will participate in the G.hn network Performance
          Monitoring diagnostics process.
        </description>
        <syntax>
          <list/>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SMMaskedBandNumberOfEntries" access="readOnly"
          version="2.8">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="NodeTypeDMConfig" access="readWrite">
        <description>
          Requests the interface to become the Domain Master in the G.hn
          domain.

          This parameter is valid only if {{param|NodeTypeDMCapable}} is
          {{true}}.

          Note that, if more than one node is configured to act as Domain
          Master, G.hn specifies a protocol to ensure only one device actually
          becomes DM.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="NodeTypeDMStatus" access="readOnly">
        <description>
          Indicates whether the interface is acting as Domain Master ({{true}})
          or not ({{false}}).

          See Note in {{param|NodeTypeDMConfig}} regarding the possibility of
          more than one node being configured with {{param|NodeTypeDMConfig}} =
          {{true}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="NodeTypeSCStatus" access="readOnly">
        <description>
          Indicates whether the interface is acting as Security Controller
          ({{true}}) or not ({{false}}).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

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

      <parameter name="PSM" access="readWrite" version="2.12">
        <description>
          Specifies the list of PSD shaping mask (PSM) breakpoints to be
          applied to the G.hn interface.

          {{list|with each list item consisting of the following}}

          {{datatype|expand}}

          The PSM level is 0.1*(the value of the level of the PSM) - 140
          dBm/Hz.

          For example, a PSM defined by two breakpoints (subcarrier 450, PSM
          level -80 dBm/Hz) and (subcarrier 1050, PSM level -90 dBm/Hz) is
          represented by PSM [450,600],[1050,500] .
        </description>
        <syntax>
          <list minItems="2" maxItems="32" nestedBrackets="required"/>
          <dataType ref="PSMBreakPointIndexAndLevel"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Ghn.Interface.{i}.Stats." minEntries="1"
        maxEntries="1" version="2.4">
      <description>
        Throughput statistics for this interface at the different G.hn
        reference points described in {{bibref|G.9961|Clause 8.1}}.

        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="Reset" access="readWrite" version="2.19">
        <description>
          Set this to {{true}} to reset all this object's statistics counters
          to zero.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BytesSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface,
          including framing characters.

          More specifically, this is the total number of MPDU bytes transmitted
          or retransmitted by the node through a physical medium (i.e., PMI
          defined in {{bibref|G.9960|Clause 5.2.1}}), which correspond to data
          LPDUs (i.e., data packets) and framing overhead (e.g., LFH, LPH, LPCS
          defined in {{bibref|G.9961|Clause 8.1}}). It does not include
          transmitted bytes contributed by management LPDUs (i.e., management
          packets).

          Note: LPDUs in mixed LLC frame blocks are considered data LPDUs.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface, including
          framing characters.

          More specifically, this is the total number of MPDU bytes received by
          the node through a physical medium, which correspond to data LPDUs
          and framing overhead. It does not include received bytes contributed
          by management LPDUs. It can include blocks with errors.

          Note: LPDUs in mixed LLC frame blocks are considered data LPDUs.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface.

          More specifically, this is the total number of APDUs requested for
          transmission by a higher layer (i.e., outbound APDUs at the x1
          reference point defined in {{bibref|G.9960|Clause 5.2.1}}) that were
          transmitted by the node through the physical medium. It does not
          include transmitted LCDUs.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface.

          More specifically, this is the total number of APDUs delivered to a
          higher layer (i.e., inbound APDUs at the x1 reference point) that
          were received by the node through the physical medium. It does not
          include received LCDUs.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} that could not be transmitted
          because of errors.

          More specifically, this is the total number of APDUs that were
          requested for transmission by a higher layer (i.e., outbound APDUs at
          the x1 reference point defined in {{bibref|G.9960|Clause 5.2.1}}) but
          could not be transmitted because of errors (e.g., APDUs containing
          CRC errors).
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} that contained errors
          preventing them from being delivered to a higher-layer protocol.

          More specifically, this is the total number of received APDUs that
          contained errors preventing them from being delivered to a higher
          layer (i.e., inbound APDUs at the x1 reference point defined in
          {{bibref|G.9960|Clause 5.2.1}}). The possible causes of error are:
          incorrect CRC, incorrect MIC, incorrect MIC size, and incorrect size
          of packet.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="ErrorsReceived">
        <description>
          The total number of {{units}} requested for transmission which were
          not addressed to a multicast or broadcast address at this layer,
          including those that were discarded or not sent.

          More specifically, this is the total number of APDUs that were
          requested for transmission by a higher layer (i.e., outbound APDUs at
          the x1 reference point) and which were addressed to a unicast address
          at this layer. It includes APDUs that were discarded or not sent.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} 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.

          More specifically, this is the total number of APDUs that were
          requested for transmission by a higher layer (i.e., outbound APDUs at
          the x1 reference point) but chosen to be discarded even though no
          errors had been detected to prevent their being transmitted (e.g.,
          buffer overflow).
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} 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.

          More specifically, this is the total number of received APDUs that
          were chosen to be discarded even though no errors had been detected
          to prevent their being delivered.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="DiscardPacketsReceived">
        <description>
          The total number of {{units}} 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.

          More specifically, this is the total number of APDUs that were
          requested for transmission by a higher layer (i.e., outbound APDUs at
          the x1 reference point) and which were addressed to a multicast
          address at this layer. It includes APDUs that were discarded or not
          sent.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were not addressed to a multicast or broadcast
          address at this layer.

          More specifically, this is the total number of received APDUs that
          were delivered to a higher layer (i.e., inbound APDUs at the x1
          reference point) and which were addressed to a unicast address at
          this layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a multicast address at this
          layer.

          More specifically, this is the total number of received APDUs that
          were delivered to a higher layer (i.e., inbound APDUs at the x1
          reference point) and which were addressed to a multicast address at
          this layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} 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.

          More specifically, this is the total number of APDUs that were
          requested for transmission by a higher layer (i.e., outbound APDUs at
          the x1 reference point) and which were addressed to a broadcast
          address at this layer. It includes APDUs that were discarded or not
          sent.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a broadcast address at this
          layer.

          More specifically, this is the total number of received APDUs that
          were delivered to a higher layer (i.e., inbound APDUs at the x1
          reference point) and which were addressed to a broadcast address at
          this layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnknownProtoPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received via the interface which were
          discarded because of an unknown or unsupported protocol.

          More specifically, this is the total number of APDUs received by the
          management that were discarded because of an unknown or unsupported
          protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MgmtBytesSent" access="readOnly" activeNotify="canDeny"
          version="2.8">
        <description>
          The total number of MPDU bytes transmitted by the node through a
          physical medium, which correspond to management LPDUs and framing
          overhead.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="MgmtBytesReceived" access="readOnly"
          activeNotify="canDeny" version="2.8">
        <description>
          The total number of MPDU bytes received by the node through a
          physical medium, which correspond to management LPDUs and framing
          overhead.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="MgmtPacketsSent" access="readOnly"
          activeNotify="canDeny" version="2.8">
        <description>
          The total number of LCDUs requested for transmission by a management
          layer (i.e., outbound LCDUs generated in LLC defined in
          {{bibref|G.9961|Clause 8.1.3}}) that were transmitted by the node
          through a physical medium.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="MgmtPacketsReceived" access="readOnly"
          activeNotify="canDeny" version="2.8">
        <description>
          The total number of LCDUs delivered to a management layer (i.e.,
          inbound LCDUs) that were received by the node through a physical
          medium.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BlocksSent" access="readOnly" activeNotify="canDeny"
          version="2.8">
        <description>
          The total number of LPDUs that were transmitted by the node through a
          physical medium, regardless of new or retransmitted LPDUs.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BlocksReceived" access="readOnly"
          activeNotify="canDeny" version="2.8">
        <description>
          The total number of LPDUs that were received by the node through a
          physical medium, with or without errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BlocksResent" access="readOnly" activeNotify="canDeny"
          version="2.8">
        <description>
          The total number of LPDUs that were retransmitted.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="BlocksErrorsReceived" access="readOnly"
          activeNotify="canDeny" version="2.8">
        <description>
          The total number of received LPDUs that contained errors.

          Note the following relationships hold:

          * PacketsSent + ErrorsSent + DiscardPacketsSent = UnicastPacketsSent
            + MulticastPacketsSent + BroadcastPacketsSent.

          * PacketsReceived = UnicastPacketsReceived + MulticastPacketsReceived
            + BroadcastPacketsReceived.

          * Retransmission rate = BlocksResent / BlocksSent.

          * Block error rate = BlocksErrorReceived / BlocksReceived.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Ghn.Interface.{i}.AssociatedDevice.{i}."
        access="readOnly" numEntriesParameter="AssociatedDeviceNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.4">
      <description>
        This table contains information about other G.hn devices connected to
        this G.hn interface.
      </description>
      <uniqueKey functional="true">
        <parameter ref="MACAddress"/>
      </uniqueKey>

      <parameter name="MACAddress" access="readOnly">
        <description>
          MAC address of remote G.hn device.

          This is denoted as REGID in {{bibref|G.9961}}.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="DeviceId" access="readOnly">
        <description>
          Device Id (as defined in G.hn) for the remote G.hn device, denoted as
          DEVICE_ID in {{bibref|G.9961}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="TxPhyRate" access="readOnly" activeNotify="canDeny">
        <description>
          The PHY transmit Rate (expressed in {{units}}) to this remote device,
          denoted as PHY data rate in {{bibref|G.9961}}.

          Refer to Note 1 of {{bibref|G.9961|Table 8-48}}. To convert from the
          value in the table, divide by 32K (32768) and round down.
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RxPhyRate" access="readOnly" activeNotify="canDeny">
        <description>
          The PHY receive Rate (expressed in {{units}}) from this remote
          device, denoted as PHY data rate in {{bibref|G.9961}}.

          Refer to Note 1 of {{bibref|G.9961|Table 8-48}}. To convert from the
          value in the table, divide by 32K (32768) and round down.
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Active" access="readOnly">
        <description>
          Whether or not this device is currently present in the G.hn domain.

          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.

          If {{param}} is {{true}}, it indicates that the Status of the remote
          device is 0, 1, or 2 (see {{bibref|G.9961|Table 7-3}}).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Ghn.Interface.{i}.DMInfo." access="readOnly"
        minEntries="1" maxEntries="1" version="2.8">
      <description>
        This object specifies management parameters pertaining to the domain
        functionality (Domain Master function; see {{bibref|G.9961|Clause
        8.6}}). The object exists only on G.hn interfaces that are currently
        the Domain Master, i.e. for which parameter {{param|#.IsDM}} is
        {{true}}.
      </description>

      <parameter name="DomainName" access="readWrite">
        <description>
          This is the domain name to which the interface is currently
          registered. {{empty}} indicates that the interface is currently not
          registered.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="32"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="DomainNameIdentifier" access="readOnly">
        <description>
          The Domain Name Identifier, a shortened version of
          {{param|DomainName}}, denoted as DNI in {{bibref|G.9961|Section
          8.6.11.2.1}}.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="2"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="DomainId" access="readOnly">
        <description>
          The Domain Identifier of the domain to which the interface is
          registered, denoted as DOD in {{bibref|G.9961}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MACCycleDuration" access="readWrite">
        <description>
          The MAC cycle duration, as specified in {{bibref|G.9961|Clause 8.4}}.
          It is represented as multiples of {{units}}. In the case of power
          line, writing to this parameter has no effect and it reads back as 0,
          which is a special value indicating that the MAC cycle is
          synchronized with 2 AC cycles as defined in {{bibref|G.9961|Clause
          8.6.3.1}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="0"/>
            <range minInclusive="10" maxInclusive="200"/>
            <units value="0.5 msec"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SCDeviceId" access="readWrite">
        <description>
          The DEVICE_ID of the Security Controller selected by the Domain
          Master.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SCMACAddress" access="readWrite">
        <description>
          The REGID of the Security Controller selected by the Domain Master.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="ReregistrationTimePeriod" access="readWrite">
        <description>
          The time interval for periodic re-registration, as specified in
          {{bibref|G.9961|Clause 8.8.5.8}}. It is represented as multiples of
          {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="5" maxInclusive="63"/>
            <units value="2 seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TopologyPeriodicInterval" access="readWrite">
        <description>
          The time interval that a node sends out the periodic topology update
          using TM_NodeTopologyChange.ind message, as specified in
          {{bibref|G.9961|Clause 8.8.5.8.1}}. It is represented as multiples of
          {{units}}. The special value 0 represents an infinite interval (i.e.,
          no periodic topology update).
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
            <units value="0.1 sec"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MinSupportedBandplan" access="readWrite">
        <description>
          Indicates the value of the minimal bandplan capability for a node
          that is allowed to register to the domain.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MaxSupportedBandplan" access="readWrite">
        <description>
          Indicates the value of the minimal bandplan capability for a node
          that is allowed to register to the domain.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Ghn.Interface.{i}.SCInfo." access="readOnly"
        minEntries="1" maxEntries="1" version="2.8">
      <description>
        This object specifies management parameters pertaining to the Security
        Controller functionality (Security Controller function; see
        {{bibref|G.9961|Clause 9.2}}). The object exists only on G.hn
        interfaces that are currently the Security Controller, i.e. for which
        parameter {{param|#.IsSC}} is {{true}}.
      </description>

      <parameter name="ModesSupported" access="readOnly">
        <description>
          The security modes that the Security Controller can support. Refer to
          {{bibref|G.9961|Clause 9.2}}.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="NN">
              <description>Node-to-Node</description>
            </enumeration>
            <enumeration value="NMK">
              <description>Network Membership Key</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="ModeEnabled" access="readWrite">
        <description>
          The security mode in which the Security Controller is operating.
        </description>
        <syntax>
          <string>
            <enumerationRef targetParam="ModesSupported" nullValue="Disabled"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="MICSize" access="readWrite">
        <description>
          The selected MIC size used in the domain.
        </description>
        <syntax>
          <string>
            <enumeration value="4-byte MIC"/>
            <enumeration value="8-byte MIC"/>
            <enumeration value="16-byte MIC"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Location" access="readOnly">
        <description>
          Indicates whether the Security Controller is above the L1 reference
          point. It is set to {{true}} if the Security Controller is above the
          L1 reference point, and set to {{false}} otherwise.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Ghn.Interface.{i}.SMMaskedBand.{i}."
        access="readWrite" numEntriesParameter="SMMaskedBandNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="32" version="2.8">
      <description>
        Specifies the list of masked bands to be applied to the G.hn interface.
        This information is conveyed by the Domain Master in the SM descriptor
        as specified in {{bibref|G.9961|Table 8-77}}.

        Instances of this object are expected to exist only on G.hn interfaces
        that are currently the Domain Master, i.e. for which parameter
        {{param|#.IsDM}} is {{true}}.
      </description>
      <uniqueKey functional="true">
        <parameter ref="BandNumber"/>
      </uniqueKey>

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

      <parameter name="BandNumber" access="readWrite">
        <description>
          The masked band number.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="StartSubCarrier" access="readWrite">
        <description>
          Index of the lowest frequency sub-carrier in the band to be masked as
          specified in {{bibref|G.9961|Table 8-79}}. This parameter is writable
          only on the interface which acts as the Domain Master.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="StopSubCarrier" access="readWrite">
        <description>
          Index of the highest frequency sub-carrier in the band to be masked
          as specified in Table 8-79 in {{bibref|G.9961}}. This parameter is
          writable only on the interface which acts as the Domain Master.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Ghn.Diagnostics." access="readOnly" minEntries="1"
        maxEntries="1" version="2.8">
      <description>
        The G.hn Diagnostics object.
      </description>
    </object>

    <object name="Device.Ghn.Diagnostics.PHYThroughput." access="readOnly"
        minEntries="1" maxEntries="1" version="2.8">
      <description>
        G.hn PHY throughput diagnostics configuration and results.

        When diagnostics are requested, all G.hn nodes for which the
        {{param|##.Interface.{i}.PHYThroughputDiagnosticsEnable}} parameter is
        set enter PHY diagnostics mode.
      </description>

      <parameter name="DiagnosticsState" access="readWrite">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="DiagnosticsState">
            <enumeration value="None" access="readOnly"/>
            <enumeration value="Requested"/>
            <enumeration value="Canceled" optional="true"/>
            <enumeration value="Complete" access="readOnly"/>
            <enumeration value="Error" access="readOnly" optional="true"/>
          </dataType>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Ghn.Diagnostics.PerformanceMonitoring."
        access="readOnly" minEntries="1" maxEntries="1" version="2.8">
      <description>
        G.hn Performance Monitoring diagnostics configuration and results.

        When diagnostics are requested, all G.hn nodes for which the
        {{param|##.Interface.{i}.PerformanceMonitoringDiagnosticsEnable}}
        parameter is set enter PHY diagnostics mode.
      </description>

      <parameter name="DiagnosticsState" access="readWrite">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="DiagnosticsState">
            <enumeration value="None" access="readOnly"/>
            <enumeration value="Requested"/>
            <enumeration value="Canceled" optional="true"/>
            <enumeration value="Complete" access="readOnly"/>
            <enumeration value="Error" access="readOnly" optional="true"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite" version="2.8">
        <description>
          The interface over which the test is to be performed.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent=".Ghn.Interface."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="DiagnoseMACAddress" access="readWrite" version="2.8">
        <description>
          The MAC address of the originating G.hn interface of the link that is
          being diagnosed.

          Note: This MAC address might belong to another node of the domain.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="SampleInterval" access="readWrite" version="2.8">
        <description>
          Time in {{units}} between automatic collection of performance
          monitoring data. A value of zero disables automatic collection of
          data.

          The node 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 device 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>

      <parameter name="SNRGroupLength" access="readWrite" version="2.8">
        <description>
          The number of sub-carriers in a group to be used for averaging SNR
          values when providing SNR information for a channel.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="1"/>
            <range minInclusive="2" maxInclusive="2"/>
            <range minInclusive="4" maxInclusive="4"/>
            <range minInclusive="8" maxInclusive="8"/>
            <range minInclusive="16" maxInclusive="16"/>
            <range minInclusive="32" maxInclusive="32"/>
            <range minInclusive="64" maxInclusive="64"/>
            <range minInclusive="128" maxInclusive="128"/>
            <range minInclusive="256" maxInclusive="256"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes."
        access="readOnly" minEntries="1" maxEntries="1" version="2.8">
      <description>
        Per-node G.hn 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 G.hn nodes for which performance
          monitoring results were collected during the current sample interval.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}."
        access="readOnly" numEntriesParameter="NodeNumberOfEntries"
        minEntries="1" maxEntries="unbounded" version="2.8">
      <description>
        Per-node G.hn performance monitoring results during the current sample
        interval. Each table entry contains the results collected between the
        G.hn nodes with MAC addresses {{param|##.DiagnoseMACAddress}}) and
        {{param|DestinationMACAddress}}).

        Note: Packet counters indicate the number of packets received between
        {{param|#.CurrentStart}} and {{param|#.CurrentEnd}}.
      </description>
      <uniqueKey functional="true">
        <parameter ref="DestinationMACAddress"/>
      </uniqueKey>

      <parameter name="DestinationMACAddress" access="readOnly">
        <description>
          MAC address of the destination node of the link being measured.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="BytesSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of MPDU bytes transmitted or retransmitted by the
          node through a physical medium (i.e., PMI defined in
          {{bibref|G.9960|Clause 5.2.1}}), which correspond to data LPDUs
          (i.e., data packets) and framing overhead (e.g., LFH, LPH, LPCS
          defined in {{bibref|G.9961|Clause 8.1}}). It does not include
          transmitted bytes contributed by management LPDUs (i.e., management
          packets).

          Note: LPDUs in mixed LLC frame blocks are considered data LPDUs.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of MPDU bytes received by the node through a
          physical medium, which correspond to data LPDUs and framing overhead.
          It does not include received bytes contributed by management LPDUs.
          It might include blocks with errors.

          Note: LPDUs in mixed LLC frame blocks are considered data LPDUs.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of APDUs requested for transmission by a higher
          layer (i.e., outbound APDUs at the x1 reference point defined in
          {{bibref|G.9960|Clause 5.2.1}}) that were transmitted by the node
          through the physical medium. It does not include transmitted LCDUs.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of APDUs delivered to a higher layer (i.e., inbound
          APDUs at the x1 reference point) that were received by the node
          through the physical medium. It does not include received LCDUs.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of APDUs that were requested for transmission by a
          higher layer (i.e., outbound APDUs at the x1 reference point defined
          in {{bibref|G.9960|Clause 5.2.1}}). This parameter represents the
          total number of LCDUs requested for transmission by a management
          layer (i.e., outbound LCDUs generated in LLC defined in in
          {{bibref|G.9961|Clause 8.1.3}}) that were transmitted by the node
          through a physical medium) but could not be transmitted because of
          errors (e.g., APDUs containing CRC errors).
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received APDUs that contained errors preventing
          them from being delivered to a higher layer (i.e., inbound APDUs at
          the x1 reference point defined in {{bibref|G.9960|Clause 5.2.1}}).
          The possible causes of error are: incorrect CRC, incorrect MIC,
          incorrect MIC size, and incorrect size of packet.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of APDUs that were requested for transmission by a
          higher layer (i.e., outbound APDUs at the x1 reference point) and
          which were addressed to a unicast address at this layer. It includes
          APDUs that were discarded or not sent.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received APDUs that were delivered to a higher
          layer (i.e., inbound APDUs at the x1 reference point) and which were
          addressed to a unicast address at this layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of APDUs that were requested for transmission by a
          higher layer (i.e., outbound APDUs at the x1 reference point) but
          chosen to be discarded even though no errors had been detected to
          prevent their being transmitted (e.g., buffer overflow).
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received APDUs that were chosen to be discarded
          even though no errors had been detected to prevent their being
          delivered.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of APDUs that were requested for transmission by a
          higher layer (i.e., outbound APDUs at the x1 reference point) and
          which were addressed to a multicast address at this layer. It
          includes APDUs that were discarded or not sent.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received APDUs that were delivered to a higher
          layer (i.e., inbound APDUs at the x1 reference point) and which were
          addressed to a multicast address at this layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of APDUs that were requested for transmission by a
          higher layer (i.e., outbound APDUs at the x1 reference point) and
          which were addressed to a broadcast address at this layer. It
          includes APDUs that were discarded or not sent.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received APDUs that were delivered to a higher
          layer (i.e., inbound APDUs at the x1 reference point) and which were
          addressed to a broadcast address at this layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="UnknownProtoPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of APDUs received by the management that were
          discarded because of an unknown or unsupported protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="MgmtBytesSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of MPDU bytes transmitted by the node through a
          physical medium, which correspond to management LPDUs and framing
          overhead.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="MgmtBytesReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of MPDU bytes received by the node through a
          physical medium, which correspond to management LPDUs and framing
          overhead.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="MgmtPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of LCDUs requested for transmission by a management
          layer (i.e., outbound LCDUs generated in LLC defined in
          {{bibref|G.9961|Clause 8.1.3}}) that were transmitted by the node
          through a physical medium.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="MgmtPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of LCDUs delivered to a management layer (i.e.,
          inbound LCDUs) that were received by the node through a physical
          medium.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BlocksSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of LPDUs that were transmitted by the node through a
          physical medium, regardless of new or retransmitted LPDUs.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BlocksReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of LPDUs that were received by the node through a
          physical medium, with or without errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BlocksResent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of LPDUs that were retransmitted.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="BlocksErrorsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received LPDUs that contained errors.

          Note the following relationships hold:

          * PacketsSent + ErrorsSent + DiscardPacketsSent = UnicastPacketsSent
            + MulticastPacketsSent + BroadcastPacketsSent.

          * PacketsReceived = UnicastPacketsReceived + MulticastPacketsReceived
            + BroadcastPacketsReceived.

          * Retransmission rate = BlocksResent / BlocksSent.

          * Block error rate = BlocksErrorReceived / BlocksReceived.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Ghn.Diagnostics.PerformanceMonitoring.Channels."
        access="readOnly" minEntries="1" maxEntries="1" version="2.8">
      <description>
        Per-channel G.hn 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}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.Ghn.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}."
        access="readOnly" numEntriesParameter="ChannelNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.8">
      <description>
        Per-channel G.hn performance monitoring results during the current
        sample interval. Each table entry contains the results collected from
        the channel between a G.hn interface (as indicated by
        {{param|##.DiagnoseMACAddress}}) and a G.hn interface indicated by
        {{param|DestinationMACAddress}})
      </description>
      <uniqueKey functional="true">
        <parameter ref="DestinationMACAddress"/>
      </uniqueKey>

      <parameter name="DestinationMACAddress" access="readOnly">
        <description>
          MAC address of the destination node of the link being measured.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="SNR" access="readOnly">
        <description>
          The result of an SNR test performed over the channel. It is formatted
          as a comma-separated list of N/M unsigned integers that represents
          the result of Signal-to-Noise-Ratio measurement (in {{units}})
          averaging in groups of M subcarriers. The number N depends on the
          bandplan used by the node and corresponds to the OFDM control
          parameter N of each medium as defined in {{bibref|G.9964}}. The
          number M corresponds to the parameter {{param|##.SNRGroupLength}}.
        </description>
        <syntax>
          <list/>
          <unsignedInt>
            <units value="0.1 dB"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.HomePlug." access="readOnly" minEntries="1"
        maxEntries="1" version="2.0">
      <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">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.HomePlug.Interface.{i}."
        numEntriesParameter="InterfaceNumberOfEntries" minEntries="0"
        maxEntries="unbounded" dmr:fixedObject="true" version="2.0">
      <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">
        <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}}.

          Because the interface includes layer 1, the {{enum|LowerLayerDown}}
          value SHOULD never be used.
        </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" version="2.0">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name">
        <description>
          The textual name of the interface as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" 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">
        <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">
        <description>
          The maximum upstream and downstream PHY bit rate supported by this
          interface (expressed in {{units}}).
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mbps"/>
          </unsignedInt>
        </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 secured="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="AssociatedDeviceNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.HomePlug.Interface.{i}.Stats." minEntries="1"
        maxEntries="1" version="2.0">
      <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="Reset" access="readWrite" version="2.19">
        <description>
          Set this to {{true}} to reset all this object's statistics counters
          to zero.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BytesSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface,
          including framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface, including
          framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} that could not be transmitted
          because of errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} that contained errors
          preventing them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="ErrorsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="DiscardPacketsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were not addressed to a multicast or broadcast
          address at this layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a multicast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a broadcast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnknownProtoPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received via the interface which were
          discarded because of an unknown or unsupported protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </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" version="2.0">
      <description>
        This table contains information about other HomePlug devices connected
        to this HomePlug interface.
      </description>
      <uniqueKey functional="true">
        <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">
            <size/>
          </list>
          <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">
            <size/>
          </list>
          <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"
        version="2.0">
      <description>
        Universal Powerline Association {{bibref|UPA-PLC}}. This object
        contains the {{object|Interface}} and {{object|Diagnostics}} objects.
      </description>

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

    <object name="Device.UPA.Interface.{i}."
        numEntriesParameter="InterfaceNumberOfEntries" minEntries="0"
        maxEntries="unbounded" dmr:fixedObject="true" version="2.0">
      <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">
        <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}}.

          Because the interface includes layer 1, the {{enum|LowerLayerDown}}
          value SHOULD never be used.
        </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" version="2.0">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name">
        <description>
          The textual name of the interface as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" 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">
        <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">
        <description>
          The maximum upstream and downstream PHY bit rate supported by this
          interface (expressed in {{units}}).
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mbps"/>
          </unsignedInt>
        </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="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 secured="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." minEntries="1"
        maxEntries="1" version="2.0">
      <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="Reset" access="readWrite" version="2.19">
        <description>
          Set this to {{true}} to reset all this object's statistics counters
          to zero.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BytesSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface,
          including framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface, including
          framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} that could not be transmitted
          because of errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} that contained errors
          preventing them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="ErrorsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="DiscardPacketsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were not addressed to a multicast or broadcast
          address at this layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a multicast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a broadcast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnknownProtoPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received via the interface which were
          discarded because of an unknown or unsupported protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>
    </object>

    <object name="Device.UPA.Interface.{i}.AssociatedDevice.{i}."
        access="readOnly" numEntriesParameter="AssociatedDeviceNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.0">
      <description>
        This table contains information about PLC connections running between
        this UPA interface and other UPA devices.
      </description>
      <uniqueKey functional="true">
        <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"
        version="2.0">
      <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" version="2.0">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </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" version="2.0">
      <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 functional="true">
        <parameter ref="MACAddress"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.0">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </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" version="2.0">
      <description>
        The UPA Diagnostics object.
      </description>
    </object>

    <object name="Device.UPA.Diagnostics.InterfaceMeasurement."
        access="readOnly" minEntries="1" maxEntries="1" version="2.0">
      <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>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="DiagnosticsState">
            <enumeration value="None" access="readOnly"/>
            <enumeration value="Requested"/>
            <enumeration value="Canceled" optional="true"/>
            <enumeration value="Complete" access="readOnly"/>
            <enumeration value="Error" access="readOnly" optional="true"/>
            <enumeration value="Error_InvalidPort" access="readOnly"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="Type" access="readWrite" version="2.0">
        <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" version="2.0">
        <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" version="2.0">
        <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" version="2.0">
        <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">
            <size/>
          </list>
          <unsignedInt>
            <units value="0.1dB"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RxGain" access="readOnly" version="2.0">
        <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" version="2.0">
      <description>
        The WiFi object is based on the IEEE 802.11 specifications
        ({{bibref|802.11-2020}}). 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>

      <parameter name="ResetCounter" access="readOnly" version="2.12">
        <description>
          This parameter counts the number of WiFi host or driver resets since
          the last device reset. This parameter is reset to zero after the
          device resets, and increments with each successive WiFi host or
          driver reset.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="ResetCause" access="readOnly" version="2.14">
        <description>
          Reports the cause for the previous Wi-Fi driver reset.
        </description>
        <syntax>
          <string>
            <enumeration value="HostReinit">
              <description>
                Indicates that the host processor intentionally performed the
                reset. This can be due to an external instruction.
              </description>
            </enumeration>
            <enumeration value="SpontaneousInterrupt">
              <description>
                Indicates that the reset was spontaneous. This can be due to an
                error condition.
              </description>
            </enumeration>
            <enumeration value="LossOfPower">
              <description>
                Indicates that the reset was due to a loss of mains power on
                the device.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="Reset" access="readWrite" version="2.12">
        <description>
          This parameter represents a request to reset or reboot the WiFi
          sub-system without resetting or rebooting the device.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.MultiAP." access="readOnly" minEntries="1"
        maxEntries="1" status="deleted" version="2.13">
      <description>
        This object describes a Wi-Fi network containing 1 or more Access Point
        devices.

        This object is related to a Wi-Fi network that contains multiple Access
        Points (Multi-AP) and utilizes software logic to optimize that Wi-Fi
        network (typically via steering STAs, also known as Associated Devices,
        to the best Access Point). This object exposes the view of the Wi-Fi
        netwtork from the perspective of the Multi-AP Controller. The Wi-Fi
        Alliance EasyMesh solution is one example of managing a Multi-AP
        network.

        This object and all sub-objects have been moved to new objects.

        {{deprecated|2.15|because it has moved to
        {{object|##.WiFi.DataElements.Network}} MultiAP objects}}

        {{obsoleted|2.17}}

        {{deleted|2.18}}
      </description>

      <parameter name="APDeviceNumberOfEntries" access="readOnly"
          status="deleted">
        <description>
          {{numentries}}

          {{deprecated|2.15| because the {{object|APDevice.{i}}} is being
          deprecated}}

          {{obsoleted|2.17}}

          {{deleted|2.18}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.MultiAP.SteeringSummaryStats." access="readOnly"
        minEntries="1" maxEntries="1" status="deleted" version="2.13">
      <description>
        The summary of statistics related to Multi-AP Steering for the Wi-Fi
        network.

        The counters contained in {{object}} are all reset on reboot.

        {{deprecated|2.15|because it has moved to
        {{object|##.DataElements.Network.MultiAPSteeringSummaryStats}}}}

        {{obsoleted|2.17}}

        {{deleted|2.18}}
      </description>

      <parameter name="NoCandidateAPFailures" access="readOnly">
        <description>
          Number of times Associated Devices should have been steered but
          weren't because a better candidate AP couldn't be found.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BlacklistAttempts" access="readOnly">
        <description>
          Number of times a Blacklist steer was attempted.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BlacklistSuccesses" access="readOnly">
        <description>
          Number of times an attempted Blacklist steer succeeded.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BlacklistFailures" access="readOnly">
        <description>
          Number of times an attempted Blacklist steer failed.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BTMAttempts" access="readOnly">
        <description>
          Number of times a BTM (BSS Transition Management; 802.11k) steer was
          attempted.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BTMSuccesses" access="readOnly">
        <description>
          Number of times an attempted BTM (BSS Transition Management; 802.11k)
          steer succeeded.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BTMFailures" access="readOnly">
        <description>
          Number of times an attempted BTM (BSS Transition Management; 802.11k)
          steer failed.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BTMQueryResponses" access="readOnly">
        <description>
          Number of asynchronous BTM (BSS Transition Management; 802.11k)
          Queries for which a BTM Request was issued.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.MultiAP.APDevice.{i}." access="readOnly"
        numEntriesParameter="APDeviceNumberOfEntries" minEntries="0"
        maxEntries="unbounded" status="deleted" version="2.13">
      <description>
        Each instance of this object represents an individual Access Point
        device in the Wi-Fi network.

        {{deprecated|2.15|because {{param|ManufacturerOUI}} and
        {{param|LastContactTime}} have moved to
        {{object|##.DataElements.Network.Device.{i}.MultiAPDevice}}, Backhaul
        parameters have moved to
        {{object|##.DataElements.Network.Device.{i}.MultiAPDevice.Backhaul}}
        and {{param|MACAddress}} is duplicated in
        {{param|##.DataElements.Network.Device.{i}.ID}}. All the rest are
        deprecated as noted}}

        {{obsoleted|2.17}}

        {{deleted|2.18}}
      </description>
      <uniqueKey functional="true">
        <parameter ref="MACAddress"/>
      </uniqueKey>

      <parameter name="MACAddress" access="readOnly" status="deleted">
        <description>
          A unique identifier for this particular device within the Wi-Fi
          network.

          {{deprecated|2.15|because it has been replaced by
          {{param|##.DataElements.Network.Device.{i}.ID}}}}

          {{obsoleted|2.17}}

          {{deleted|2.18}}
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="Manufacturer" access="readOnly" status="deleted">
        <description>
          The manufacturer of the Access Point device (human readable string).

          {{deprecated|2.15|because this information will be part of Data
          Elements R2}}

          {{obsoleted|2.17}}

          {{deleted|2.18}}
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="ManufacturerOUI" access="readOnly">
        <description>
          Organizationally unique identifier of the Access Point 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.
        </description>
        <syntax>
          <string>
            <size minLength="6" maxLength="6"/>
            <pattern value="[0-9A-F]{6}"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ProductClass" access="readOnly" status="deleted">
        <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.

          {{deprecated|2.15|because this information will be part of Data
          Elements R2}}

          {{obsoleted|2.17}}

          {{deleted|2.18}}
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SerialNumber" access="readOnly" status="deleted">
        <description>
          Identifier of the particular Access Point 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.

          {{deprecated|2.15|because this information will be part of Data
          Elements R2}}

          {{obsoleted|2.17}}

          {{deleted|2.18}}
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SoftwareVersion" access="readOnly" status="deleted">
        <description>
          A string identifying the software version currently installed in the
          Access Point device (i.e. version of the overall 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''.

          {{deprecated|2.15|because this information will be part of Data
          Elements R2}}

          {{obsoleted|2.17}}

          {{deleted|2.18}}
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastContactTime" access="readOnly">
        <description>
          The last time that the Access Point device was contacted via the
          Multi-AP control protocol.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="AssocIEEE1905DeviceRef" access="readOnly">
        <description>
          {{param}} is a reference to the IEEE 1905.1 Network Topology Device.
          Since IEEE 1905.1 is a common protocol used by Multi-AP Controllers
          for communications, this parameter allows the MultiAP portion of the
          data model to reference the associated IEEE 1905.1 portion of the
          data model.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong"
                targetParent="###.IEEE1905.AL.NetworkTopology.IEEE1905Device."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="BackhaulLinkType" access="readOnly">
        <description>
          The medium being used to backhaul this Access Point Device to the
          Multi-AP Controller. The {{enum|None}} value is reserved for the
          {{object}} instance that represents the Multi-AP Controller. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="None"/>
            <enumeration value="Wi-Fi"/>
            <enumeration value="MoCA"/>
            <enumeration value="Ethernet"/>
            <enumeration value="G.hn"/>
            <enumeration value="HPNA"/>
            <enumeration value="HomePlug"/>
            <enumeration value="UPA"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="BackhaulMACAddress" access="readOnly">
        <description>
          The MAC Address of the Device on the network that is providing a
          Backhaul Link for this Access Point Device.

          {{empty}} is reserved for the {{object}} instance that represents the
          Multi-AP Controller.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="BackhaulBytesSent" access="readOnly">
        <description>
          The total number of bytes transmitted across the backhaul medium (as
          identified by the value of the {{param|BackhaulLinkType}} parameter),
          including framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BackhaulBytesReceived" access="readOnly">
        <description>
          The total number of bytes received across the backhaul medium (as
          identified by the value of the {{param|BackhaulLinkType}} parameter),
          including framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BackhaulLinkUtilization" access="readOnly">
        <description>
          Current utilization (expressed in {{units}}) of the medium (as
          identified by the value of the {{param|BackhaulLinkType}} parameter)
          being used to backhaul this Access Point device to the Multi-AP
          Controller. A value of 0 is used for the {{object}} instance that
          represents the Access Point on the Multi-AP Controller.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
            <units value="%"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="BackhaulSignalStrength" access="readOnly">
        <description>
          An indicator of radio signal strength of the backhaul link of the
          Access Point (AP) to the Multi-AP Controller, measured in {{units}}.
          RCPI threshold is encoded per {{bibref|802.11-2020|Table 9-176}}. The
          value of this parameter is indeterminate if the value of the
          {{param|BackhaulLinkType}} parameter is anything other than
          {{enum|Wi-Fi|BackhaulLinkType}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
            <units value="dBm"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RadarDetections" access="readOnly" version="2.14">
        <description>
          {{list}} List items represent channels in the non-occupancy list due
          to radars detected by Dynamic Frequency Selection (DFS) Channel
          Availability Check (CAC).
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="DFSEnable" access="readWrite" version="2.14"
          status="deleted">
        <description>
          Enables or disables Dynamic Frequency Selection (DFS).

          {{deprecated|2.15|because this information will be part of Data
          Elements R2}}

          {{obsoleted|2.17}}

          {{deleted|2.18}}
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="RadioNumberOfEntries" access="readOnly"
          status="deleted">
        <description>
          {{numentries}}

          {{deprecated|2.15| because the {{object|Radio.{i}}} is being
          deprecated}}

          {{obsoleted|2.17}}

          {{deleted|2.18}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.MultiAP.APDevice.{i}.Radio.{i}."
        access="readOnly" numEntriesParameter="RadioNumberOfEntries"
        minEntries="0" maxEntries="unbounded" status="deleted" version="2.13">
      <description>
        This object represents all of the individual Radios contained within
        the identified Access Point device known to the controller.

        {{deprecated|2.15|because {{param|MACAddress}} is duplicated in
        {{param|###.DataElements.Network.Device.{i}.Radio.{i}.ID}} and
        {{param|OperatingFrequencyBand}} is replaced with
        {{param|###.DataElements.Network.Device.{i}.Radio.{i}.CurrentOperatingClassProfile.{i}.Class}}.
        {{param|Channel}} is duplicated in
        {{param|###.DataElements.Network.Device.{i}.Radio.{i}.CurrentOperatingClassProfile.{i}.Channel}}.
        {{param|TransmitPower}} is duplicated in
        {{param|###.DataElements.Network.Device.{i}.Radio.{i}.CurrentOperatingClassProfile.{i}.TxPower}}.
        The remaining parameters deprecated as noted}}

        {{obsoleted|2.17}}

        {{deleted|2.18}}
      </description>
      <uniqueKey functional="true">
        <parameter ref="MACAddress"/>
      </uniqueKey>

      <parameter name="MACAddress" access="readOnly" status="deleted">
        <description>
          A unique identifier for this particular Radio within the identified
          Access Point.

          {{deprecated|2.15|because it is duplicated in
          {{param|###.DataElements.Network.Device.{i}.Radio.{i}.ID}}}}

          {{obsoleted|2.17}}

          {{deleted|2.18}}
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="OperatingFrequencyBand" access="readOnly"
          status="deleted">
        <description>
          Indicates the frequency band at which the radio is operating.
          {{enum}}

          {{deprecated|2.15|because it is replaced with
          {{param|###.DataElements.Network.Device.{i}.Radio.{i}.CurrentOperatingClassProfile.{i}.Class}}}}

          {{obsoleted|2.17}}

          {{deleted|2.18}}
        </description>
        <syntax>
          <string>
            <enumeration value="2.4GHz"/>
            <enumeration value="5GHz"/>
            <enumeration value="6GHz" version="2.16"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="OperatingStandards" access="readOnly" status="deleted">
        <description>
          {{list}} List items indicate which IEEE 802.11 standard this
          {{object}} instance is configured for. {{enum}}

          If {{param|OperatingFrequencyBand}} is set to
          {{enum|2.4GHz|OperatingFrequencyBand}}, only values {{enum|b}},
          {{enum|g}}, {{enum|n}}, {{enum|ax}} are applicable.

          If {{param|OperatingFrequencyBand}} is set to
          {{enum|5GHz|OperatingFrequencyBand}}, only values {{enum|a}},
          {{enum|n}}, {{enum|ac}}, {{enum|ax}} are applicable.

          If {{param|OperatingFrequencyBand}} is set to
          {{enum|6GHz|OperatingFrequencyBand}}, only value {{enum|ax}} is
          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 is in use.

          {{deprecated|2.15|because this information cannot be obtained by
          EasyMesh}}

          {{obsoleted|2.17}}

          {{deleted|2.18}}
        </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>
            <enumeration value="ac">
              <description>{{bibref|802.11ac-2013}}</description>
            </enumeration>
            <enumeration value="ax">
              <description>{{bibref|802.11ax}}</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="Channel" access="readWrite" status="deleted">
        <description>
          The current radio channel used by the connection.

          To request automatic channel selection, set
          {{param|###.Radio.{i}.AutoChannelEnable}} to {{true}}.

          Whenever {{param|###.Radio.{i}.AutoChannelEnable}} is {{true}}, the
          value of the {{param}} parameter MUST be the channel selected by the
          automatic channel selection procedure.

          For channels in "wide mode" (where a channel bandwidth strictly
          greater than 20 MHz is used), this parameter is used for Primary
          Channel only. The secondary or extension channel information is
          available through {{param|ExtensionChannel}}.

          Note: Valid {{param}} values depend on the
          {{param|OperatingFrequencyBand}} value specified and the regulatory
          domain.

          {{deprecated|2.15|because it is replaced with
          {{param|###.DataElements.Network.Device.{i}.Radio.{i}.CurrentOperatingClassProfile.{i}.Channel}}}}

          {{obsoleted|2.17}}

          {{deleted|2.18}}
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ExtensionChannel" access="readOnly" status="deleted">
        <description>
          The secondary extension channel position, applicable when operating
          in wide channel mode (i.e. when
          {{param|CurrentOperatingChannelBandwidth}} is
          {{enum|40MHz|CurrentOperatingChannelBandwidth}}

          If not operating in wide channel mode (i.e. when
          {{param|CurrentOperatingChannelBandwidth}} is something other than
          {{enum|40MHz|CurrentOperatingChannelBandwidth}}, then the value of
          {{param}} is {{enum|None}}. {{enum}}

          {{deprecated|2.15|because this information is not available via
          EasyMesh}}

          {{obsoleted|2.17}}

          {{deleted|2.18}}
        </description>
        <syntax>
          <string>
            <enumeration value="None"/>
            <enumeration value="AboveControlChannel"/>
            <enumeration value="BelowControlChannel"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="PossibleChannels" access="readOnly" status="deleted"
          version="2.14">
        <description>
          {{list}} List items represent possible radio channels for the
          wireless standard (a, b, g, n, ac, ax) and the regulatory domain.

          Ranges in the form "n-m" are permitted.

          For example, for 802.11b and North America, would be "1-11".

          {{deprecated|2.15|because it is not available via EasyMesh}}

          {{obsoleted|2.17}}

          {{deleted|2.18}}
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="CurrentOperatingChannelBandwidth" access="readOnly"
          status="deleted">
        <description>
          The channel bandwidth currently in use. {{enum}}

          {{deprecated|2.15|because it is not available via EasyMesh}}

          {{obsoleted|2.17}}

          {{deleted|2.18}}
        </description>
        <syntax>
          <string>
            <enumeration value="20MHz"/>
            <enumeration value="40MHz"/>
            <enumeration value="80MHz"/>
            <enumeration value="160MHz"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="MCS" access="readOnly" status="deleted">
        <description>
          The Modulation Coding Scheme index (applicable to 802.11n and
          802.11ac specifications only). Values from 0 to 15 MUST be supported
          ({{bibref|802.11n-2009}}). Values from 0 to 9 MUST be supported for
          {{bibref|802.11ac-2013}}.

          {{deprecated|2.15|because this information is not available in
          EasyMesh}}

          {{obsoleted|2.17}}

          {{deleted|2.18}}
        </description>
        <syntax>
          <int>
            <range minInclusive="0" maxInclusive="15"/>
            <range minInclusive="16" maxInclusive="31"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="TransmitPower" access="readOnly" status="deleted">
        <description>
          Indicates the current transmit power level as a {{units}} of full
          power.

          {{deprecated|2.15|because it is duplicated in
          {{param|###.DataElements.Network.Device.{i}.Radio.{i}.CurrentOperatingClassProfile.{i}.TxPower}}}}

          {{obsoleted|2.17}}

          {{deleted|2.18}}
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="100"/>
            <units value="percentage"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="TransmitPowerLimit" access="readWrite" status="deleted"
          version="2.14">
        <description>
          Indicates the maximum Effective Isotropic Radiated Power (EIRP) per
          20 MHz bandwidth representing the nominal transmit power limit for
          this radio. The field is coded in units of {{units}} relative to 1
          mW. {{bibref|EasyMesh|Clause 17.2.15}}

          {{deprecated|2.15|because it is not available in EasyMesh}}

          {{obsoleted|2.17}}

          {{deleted|2.18}}
        </description>
        <syntax>
          <int>
            <range minInclusive="-90" maxInclusive="36"/>
            <units value="dBm"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="APNumberOfEntries" access="readOnly" status="deleted">
        <description>
          {{numentries}}

          {{deprecated|2.15| because the {{object|AP.{i}.}} is being
          deprecated}}

          {{obsoleted|2.17}}

          {{deleted|2.18}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.MultiAP.APDevice.{i}.Radio.{i}.AP.{i}."
        access="readOnly" numEntriesParameter="APNumberOfEntries"
        minEntries="0" maxEntries="unbounded" status="deleted" version="2.13">
      <description>
        A single logical Access Point operating on this radio.

        {{deprecated|2.15|because it has moved to
        {{object|####.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.MultiAPSteering.}}
        except {{param|SSID}} and {{param|BSSID}} which are duplicated in
        {{object|####.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.}}}}

        {{obsoleted|2.17}}

        {{deleted|2.18}}
      </description>
      <uniqueKey functional="true">
        <parameter ref="BSSID"/>
      </uniqueKey>

      <parameter name="BSSID" access="readOnly">
        <description>
          The MAC Address of the logical BSS (BSSID).
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="SSID" access="readOnly">
        <description>
          The SSID in use for this BSS.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="BlacklistAttempts" access="readOnly">
        <description>
          Number of times a Blacklist steer was attempted for this Access
          Point.

          Blacklist steering is the process of forcing a connected STA to move
          to another Access Point by temporarily blocking its access to the
          current Access Point.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BTMAttempts" access="readOnly">
        <description>
          Number of times a BTM (BSS Transition Management; 802.11k) steer was
          attempted for this Access Point.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BTMQueryResponses" access="readOnly">
        <description>
          Number of asynchronous BTM (BSS Transition Management; 802.11k)
          Queries for which a BTM Request was issued by this Access Point.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="AssociatedDeviceNumberOfEntries" access="readOnly"
          status="deleted">
        <description>
          {{numentries}}

          {{deprecated|2.15| because the {{object|AssociatedDevice.{i}.}} is
          being deprecated}}

          {{obsoleted|2.17}}

          {{deleted|2.18}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.MultiAP.APDevice.{i}.Radio.{i}.AP.{i}.AssociatedDevice.{i}."
        access="readOnly" numEntriesParameter="AssociatedDeviceNumberOfEntries"
        minEntries="0" maxEntries="unbounded" status="deleted" version="2.13">
      <description>
        Object describing a single Associated Device (STA).

        {{deprecated|2.15|because it has moved {{param|AssociationTime}},
        {{param|Noise}} into
        {{object|#####.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.MultiAPSTA.}}
        and the remaining parameters are duplicated in
        {{object|#####.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.}}
        except {{param|OperatingStandard}} which was deprecated as noted}}

        {{obsoleted|2.17}}

        {{deleted|2.18}}
      </description>
      <uniqueKey functional="true">
        <parameter ref="MACAddress"/>
      </uniqueKey>

      <parameter name="MACAddress" access="readOnly">
        <description>
          The MAC address of an associated device.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="OperatingStandard" access="readOnly" status="deleted">
        <description>
          The operating standard that this associated device is connected with.
          {{enum}}

          {{deprecated|2.15|because this information cannot be obtained by
          EasyMesh}}

          {{obsoleted|2.17}}

          {{deleted|2.18}}
        </description>
        <syntax>
          <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>
            <enumeration value="ac">
              <description>{{bibref|802.11ac-2013}}</description>
            </enumeration>
            <enumeration value="ax">
              <description>{{bibref|802.11ax}}</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="Active" access="readOnly" status="deleted">
        <description>
          Whether or not this associated device is currently present on the
          Wi-Fi Access Point device.

          The ability to list inactive nodes is OPTIONAL. If the Access Point
          devices 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.

          {{deprecated|2.15|because this information cannot be obtained by
          EasyMesh}}

          {{obsoleted|2.17}}

          {{deleted|2.18}}
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="AssociationTime" access="readOnly">
        <description>
          Date and time in UTC when the device was associated.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="LastDataDownlinkRate" access="readOnly">
        <description>
          The data transmit rate in {{units}} that was most recently used for
          transmission of data from the access point to the associated device.
        </description>
        <syntax>
          <unsignedInt>
            <units value="kbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LastDataUplinkRate" access="readOnly">
        <description>
          The data transmit rate in {{units}} that was most recently used for
          transmission of data from the associated device to the access point.
        </description>
        <syntax>
          <unsignedInt>
            <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 (STA) to the Access Point (AP) measured in
          {{units}}. RCPI threshold is encoded per {{bibref|802.11-2020|Table
          9-176}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
            <units value="dBm"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Noise" access="readOnly">
        <description>
          An indicator of the average radio noise plus interference power
          measured on the uplink from the Associated Device (STA) to the Access
          Point (AP).

          Encoded as defined for ANPI in {{bibref|802.11-2020|Section
          11.10.9.4}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SteeringHistoryNumberOfEntries" access="readOnly"
          status="deleted">
        <description>
          {{numentries}}

          {{deprecated|2.15| because the
          {{object|#####.MultiAP.APDevice.{i}.Radio.{i}.AP.{i}.AssociatedDevice.{i}.SteeringHistory.{i}.}}
          is being deprecated}}

          {{obsoleted|2.17}}

          {{deleted|2.18}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.MultiAP.APDevice.{i}.Radio.{i}.AP.{i}.AssociatedDevice.{i}.Stats."
        access="readOnly" minEntries="1" maxEntries="1" status="deleted"
        version="2.13">
      <description>
        Object describing the Statistics for a single Associated Device (STA).

        {{deprecated|2.15|because it is duplicated in
        {{object|######.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.}}}}

        {{obsoleted|2.17}}

        {{deleted|2.18}}
      </description>

      <parameter name="BytesSent" access="readOnly">
        <description>
          The total number of bytes transmitted to the Associated Device.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" access="readOnly">
        <description>
          The total number of bytes received from the Associated Device.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" access="readOnly">
        <description>
          The total number of packets transmitted to the Associated Device.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" access="readOnly">
        <description>
          The total number of packets received from the Associated Device.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" access="readOnly">
        <description>
          The total number of outbound packets that could not be transmitted
          because of errors. These might be due to the number of
          retransmissions exceeding the retry limit, or from other causes.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

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

      <parameter name="RetransCount" access="readOnly">
        <description>
          The total number of transmitted packets which were retransmissions.
          Two retransmissions of the same packet results in this counter
          incrementing by two.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.MultiAP.APDevice.{i}.Radio.{i}.AP.{i}.AssociatedDevice.{i}.SteeringSummaryStats."
        access="readOnly" minEntries="1" maxEntries="1" status="deleted"
        version="2.13">
      <description>
        The summary of statistics related to Multi-AP Steering for an
        individual STA on the Wi-Fi network.

        The counters contained in {{object}} are all reset on reboot.

        {{deprecated|2.15|because it has moved to
        {{object|######.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.MultiAPSTA.SteeringSummaryStats.}}}}

        {{obsoleted|2.17}}

        {{deleted|2.18}}
      </description>

      <parameter name="NoCandidateAPFailures" access="readOnly">
        <description>
          Number of times this Associated Device should have been steered but
          wasn't because a better candidate AP couldn't be found.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BlacklistAttempts" access="readOnly">
        <description>
          Number of times a Blacklist steer was attempted on this Associated
          Device.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BlacklistSuccesses" access="readOnly">
        <description>
          Number of times an attempted Blacklist steer succeeded for this
          Associated Device.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BlacklistFailures" access="readOnly">
        <description>
          Number of times an attempted Blacklist steer failed for this
          Associated Device.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BTMAttempts" access="readOnly">
        <description>
          Number of times a BTM (BSS Transition Management; 802.11k) steer was
          attempted on this Associated Device.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BTMSuccesses" access="readOnly">
        <description>
          Number of times an attempted BTM (BSS Transition Management; 802.11k)
          steer succeeded for this Associated Device.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BTMFailures" access="readOnly">
        <description>
          Number of times an attempted BTM (BSS Transition Management; 802.11k)
          steer failed for this Associated Device.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BTMQueryResponses" access="readOnly">
        <description>
          Number of asynchronous BTM (BSS Transition Management; 802.11k)
          Queries for which a BTM Request was issued to this Associated Device.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="LastSteerTime" access="readOnly">
        <description>
          The number of {{units}} since this Associated Device was last
          attempted to be steered.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.MultiAP.APDevice.{i}.Radio.{i}.AP.{i}.AssociatedDevice.{i}.SteeringHistory.{i}."
        access="readOnly" numEntriesParameter="SteeringHistoryNumberOfEntries"
        minEntries="0" maxEntries="unbounded" status="deleted" version="2.13">
      <description>
        The history of Multi-AP Steering for an individual STA on the Wi-Fi
        network.

        The contents of this multi-instance object are reset on reboot.

        {{deprecated|2.15|because it has moved to
        {{object|######.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.MultiAPSTA.SteeringHistory.{i}.}}}}

        {{obsoleted|2.17}}

        {{deleted|2.18}}
      </description>
      <uniqueKey functional="true">
        <parameter ref="Time"/>
        <parameter ref="APOrigin"/>
        <parameter ref="APDestination"/>
      </uniqueKey>

      <parameter name="Time" access="readOnly">
        <description>
          The date/time when steering was initiated for the Associated Device.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="APOrigin" access="readOnly">
        <description>
          The BSSID of the Access Point that initiated the steering.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="TriggerEvent" access="readOnly">
        <description>
          The type of event that caused the steering to be initiaited. {{enum}}

          NOTE: This might be Unknown for BTM Query Response steers.
        </description>
        <syntax>
          <string>
            <enumeration value="Unknown"/>
            <enumeration value="Wi-Fi Channel Utilization"/>
            <enumeration value="Wi-Fi Link Quality"/>
            <enumeration value="Backhaul Link Utilization"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SteeringApproach" access="readOnly">
        <description>
          The type of steering that was attempted. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="Blacklist"/>
            <enumeration value="BTM Request"/>
            <enumeration value="Async BTM Query"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="APDestination" access="readOnly">
        <description>
          The BSSID of the destination Access Point of a successful steer.

          A failed steering attempt will leave this parameter {{empty}}.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="SteeringDuration" access="readOnly">
        <description>
          The amount of time in {{units}} required for the steer to complete
          successfully.

          A failed steering attempt will leave this parameter 0.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.DataElements." access="readOnly" minEntries="1"
        maxEntries="1" version="2.13">
      <description>
        This object represents the Wi-Fi Alliance Data Elements as defined in
        {{bibref|DataElements}} with extended capabilities in additional
        objects whose names begin with MultiAP.
      </description>
    </object>

    <object name="Device.WiFi.DataElements.Network." access="readOnly"
        minEntries="1" maxEntries="1" version="2.13">
      <description>
        This object describes a Wi-Fi network containing 1 or more Access Point
        (AP) devices.
      </description>

      <parameter name="ID" access="readOnly">
        <description>
          A unique identifier for this particular Wi-Fi network.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="TimeStamp" access="readOnly">
        <description>
          The time this group was collected. Formatted with the date-and-time
          string format as defined in {{bibref|RFC3339|Section 3}}.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="ControllerID" access="readOnly">
        <description>
          A unique identifier for a Multi-AP controller.

          It is recommended that this be the same as the IEEE 1905 ALID of the
          EasyMesh controller.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

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

      <parameter name="MSCSDisallowedStaList" access="readOnly" version="2.15">
        <description>
          List of STAs for which Mirrored Stream Classification Service (MSCS)
          operation is disallowed.
        </description>
        <syntax>
          <list/>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="SCSDisallowedStaList" access="readOnly" version="2.15">
        <description>
          List of STAs for which Stream Classification Service (SCS) operation
          is disallowed.
        </description>
        <syntax>
          <list/>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="ColocatedAgentID" access="readOnly" version="2.17">
        <description>
          AL MAC address of the EasyMesh Agent that is co-located in the same
          device with the Wi-Fi EasyMesh Controller.

          Set to null if there is no such collocated agent.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="SteeringMandates" access="readOnly" version="2.19">
        <description>
          Count of number of EasyMesh controller-initiated requests for
          Steering Mandates. {{bibref|EasyMesh|Section 17.2.57, Profile-2
          Steering Request TLV, with field Request_Mode set to one}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="SteeringOpportunities" access="readOnly" version="2.19">
        <description>
          Count of number of EasyMesh controller-initiated requests for
          Steering Opportunities. {{bibref|EasyMesh|Section 17.2.57, Profile-2
          Steering Request TLV, with field Request_Mode set to zero}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="SSIDNumberOfEntries" access="readOnly" version="2.15">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="STABlockNumberOfEntries" access="readOnly"
          version="2.17">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

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

    <object name="Device.WiFi.DataElements.Network.SSID.{i}."
        access="readOnly" numEntriesParameter="SSIDNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.15">
      <description>
        This object specifies SSIDs for fronthaul use across all agents in this
        Wi-Fi Multi-AP network, or on this single-AP. Also specifies the
        {{param|Band}} for each {{param|SSID}}. The {{param|Alias}} can be used
        to uniquely refer to this table entry corresponding to a BSS even if
        the {{param|SSID}} were to change.

        Note that VLAN IDs (VIDs) can be configured per SSID with
        {{object|#.Device.{i}.SSIDtoVIDMapping.{i}}}.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="SSID" access="readOnly">
        <description>
          The SSID for fronthaul use across this Wi-Fi Multi-AP network.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Band" access="readOnly">
        <description>
          The band(s) (GHz) for which this {{param|SSID}} applies. {{enum}}
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="All">
              <description>Applies to all bands</description>
            </enumeration>
            <enumeration value="2.4">
              <description>2.4 GHz band</description>
            </enumeration>
            <enumeration value="5">
              <description>The entire 5 GHz band</description>
            </enumeration>
            <enumeration value="6">
              <description>The entire 6 GHz band</description>
            </enumeration>
            <enumeration value="5_UNII_1">
              <description>5 GHz UNII-1 band, 5.15 to 5.25 GHz</description>
            </enumeration>
            <enumeration value="5_UNII_2">
              <description>5 GHz UNII-2 band, 5.25 to 5.725 GHz</description>
            </enumeration>
            <enumeration value="5_UNII_3">
              <description>5 GHz UNII-3 band, 5.725 to 5.85 GHz</description>
            </enumeration>
            <enumeration value="5_UNII_4">
              <description>5 GHz UNII-4 band, 5.85 to 5.925 GHz</description>
            </enumeration>
            <enumeration value="6_UNII_5">
              <description>6 GHz UNII-5 band, 5.925 to 6.425 GHz</description>
            </enumeration>
            <enumeration value="6_UNII_6">
              <description>6 GHz UNII-6 band, 6.425 to 6.525 GHz</description>
            </enumeration>
            <enumeration value="6_UNII_7">
              <description>6 GHz UNII-7 band, 6.525 to 6.875 GHz</description>
            </enumeration>
            <enumeration value="6_UNII_8">
              <description>6 GHz UNII-8 band, 6.875 to 7.125 GHz</description>
            </enumeration>
            <enumeration value="Sub_1GHz" version="2.19">
              <description>Sub 1 GHz band, 800 MHz to 928 MHz</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="Enable" access="readOnly" version="2.17">
        <description>
          Enable or disable of this {{param|SSID}}. Disable stops the use of
          this {{param|SSID}}, but the object is retained.

          : {{true}}: this {{param|SSID}} is enabled.

          : {{false}}: this {{param|SSID}} is disabled.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="AKMsAllowed" access="readOnly" version="2.17">
        <description>
          {{list}} List items indicate Authentication and Key Management (AKM)
          suites/security modes allowed on this BSS. {{enum}}
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="psk">
              <description>
                "psk" indicates one or more of the PSK and FT-PSK AKMs defined
                in {{bibref|802.11-2020|Table 9-151}} typically at least
                "00-0F-AC:2" for interoperability.
              </description>
            </enumeration>
            <enumeration value="dpp">
              <description>
                "dpp" indicates one or more of the DPP and FT-DPP AKMs defined
                in {{bibref|EasyConnect|Section 8.4}}, typically at least
                "50-6F-9A:2" for interoperability.
              </description>
            </enumeration>
            <enumeration value="sae">
              <description>
                "sae" indicates one or more of the SAE and FT-SAE AKMs defined
                in {{bibref|802.11-2020|Table 9-151}} typically at least
                "00-0F-AC:8" for interoperability.
              </description>
            </enumeration>
            <enumeration value="psk+sae"/>
            <enumeration value="dpp+sae"/>
            <enumeration value="dpp+psk+sae"/>
            <enumeration value="SuiteSelector">
              <description>
                "SuiteSelector" indicates an AKM suite selector, the value of
                which is indicated in {{param|SuiteSelector}}.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="SuiteSelector" access="readOnly" version="2.17">
        <description>
          AKM suite selector, the AKM suite selector (OUI and type) is encoded
          as a 4-octet hex-encoded value without internal delimiters, e.g.
          506F9A02 {{bibref|802.11-2020|Table 9-151}}.

          This parameter applies if {{param|AKMsAllowed}} includes value
          "SuiteSelector".
        </description>
        <syntax>
          <hexBinary>
            <size minLength="4" maxLength="4"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="AdvertisementEnabled" access="readOnly" version="2.17">
        <description>
          Indicates if the SSID is advertised in beacons, or not.

          : {{true}}: this {{param|SSID}} is to be advertised in beacons.

          : {{false}}: this {{param|SSID}} is not to be advertised in beacons.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MFPConfig" access="readOnly" version="2.17">
        <description>
          Management Frame Protection (MFP) configuration. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Optional"/>
            <enumeration value="Required"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="MobilityDomain" access="readOnly" version="2.17">
        <description>
          The IEEE 802.11 mobility domain {{bibref|802.11-2020|Section
          9.4.2.46}}.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="HaulType" access="readOnly" version="2.17">
        <description>
          Indicates the use of this {{param|SSID}}. {{enum}}
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="Fronthaul"/>
            <enumeration value="Backhaul"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Type" access="readOnly" version="2.19">
        <description>
          Human-readable description for the BSS referenced by this {{object}}.
          For example {{param}} could be one of Primary, Home, Guest, Public,
          Private, Children, Video, Backhaul, Not Children, or Public 2.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.DataElements.Network.STABlock.{i}."
        access="readWrite" numEntriesParameter="STABlockNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.17">
      <description>
        This object indicates stations (STAs) for which client association is
        blocked.

        optionally the BSSID(s) the STA is blocked from associating to. In
        multi-AP cases, this should be implemented by Wi-Fi EasyMesh
        {{bibref|EasyMesh}} client association control.

        Stations that are already associated shall be disassociated if
        {{object|#.STABlock.{i}.Schedule.{i}.}} indicates so.
      </description>
      <uniqueKey functional="false">
        <parameter ref="BlockedSTA"/>
      </uniqueKey>

      <parameter name="BlockedSTA" access="readWrite">
        <description>
          MAC addresses of the STA that is blocked.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="BSSID" access="readWrite">
        <description>
          {{list}} Indicates BSS from which the {{param|BlockedSTA}} is blocked
          from association and cannot associate to. A null list indicates that
          all SSIDs are blocked.
        </description>
        <syntax>
          <list/>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

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

    <object name="Device.WiFi.DataElements.Network.STABlock.{i}.Schedule.{i}."
        access="readWrite" numEntriesParameter="ScheduleNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.17">
      <description>
        Each instance of this object provides a schedule where client
        association is blocked for {{param|#.BlockedSTA}}
        {{bibref|EasyMesh|Section 11.6}}.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="Day" access="readWrite">
        <description>
          {{list|the days for which the STA is blocked}} {{enum}}
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="Monday"/>
            <enumeration value="Tuesday"/>
            <enumeration value="Wednesday"/>
            <enumeration value="Thursday"/>
            <enumeration value="Friday"/>
            <enumeration value="Saturday"/>
            <enumeration value="Sunday"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="StartTime" access="readWrite">
        <description>
          Start time of the STA block in hh:mm format. [hh] refers to a
          zero-padded hour between 00 and 23. [mm] refers to a zero-padded
          minute between 00 and 59.

          Start time is in local time zone.
        </description>
        <syntax>
          <string>
            <size maxLength="5"/>
            <pattern value=""/>
            <pattern value="([01][0-9]|2[0-3]):[0-5][0-9]"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Duration" access="readWrite">
        <description>
          The duration, in {{units}}, which the STA is blocked. If
          {{param|StartTime}} is defined, the STA is blocked for the {{param}}
          period starting from {{param|StartTime}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.DataElements.Network.ProvisionedDPP.{i}."
        access="readWrite" numEntriesParameter="ProvisionedDPPNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.19">
      <description>
        This table contains provisioned Device Provisioning Protocol (DPP)
        Boostrap URIs {{bibref|EasyConnect|Section 5.2.1}} which contain
        bootstrapping keys available to the Multi-AP controller for trusted
        third party onboarding of new Multi-AP agents.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="DPPURI" access="readWrite">
        <description>
          The boostrapping DPP URI information which contains the enrollee
          public key to use for DPP onboarding a Multi-AP agent as specified by
          {{bibref|EasyConnect|Section 5.2.1}}.
        </description>
        <syntax>
          <dataType ref="URI"/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.MultiAPSteeringSummaryStats."
        access="readOnly" minEntries="1" maxEntries="1" version="2.15">
      <description>
        The summary of statistics related to Multi-AP Steering for the Wi-Fi
        network.

        The counters contained in {{object}} are all reset on reboot.
      </description>

      <parameter name="NoCandidateAPFailures" access="readOnly">
        <description>
          Number of times Associated Devices should have been steered but
          weren't because a better candidate AP couldn't be found.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BlacklistAttempts" access="readOnly">
        <description>
          Number of times a Blacklist steer was attempted.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BlacklistSuccesses" access="readOnly">
        <description>
          Number of times an attempted Blacklist steer succeeded.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BlacklistFailures" access="readOnly">
        <description>
          Number of times an attempted Blacklist steer failed.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BTMAttempts" access="readOnly">
        <description>
          Number of times a BTM (BSS Transition Management; {{bibref|802.11k}})
          steer was attempted.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BTMSuccesses" access="readOnly">
        <description>
          Number of times an attempted BTM (BSS Transition Management;
          {{bibref|802.11k}}) steer succeeded.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BTMFailures" access="readOnly">
        <description>
          Number of times an attempted BTM (BSS Transition Management;
          {{bibref|802.11k}}) steer failed.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BTMQueryResponses" access="readOnly">
        <description>
          Number of asynchronous BTM (BSS Transition Management;
          {{bibref|802.11k}}) Queries for which a BTM Request was issued.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.DataElements.Network.Device.{i}."
        access="readOnly" numEntriesParameter="DeviceNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.13">
      <description>
        Each instance of this object represents an individual EasyMesh Agent or
        single-AP device in the Wi-Fi network.
      </description>
      <uniqueKey functional="true">
        <parameter ref="ID"/>
      </uniqueKey>

      <parameter name="ID" access="readOnly">
        <description>
          A unique identifier for this particular device within the Wi-Fi
          network as defined in {{bibref|DataElements|Section 3.1}}.

          If this {{object}} is represented in
          {{object|Device.IEEE1905.AL.NetworkTopology.}}, then this should
          match an IEEE 1905 AL MAC Address in
          {{param|Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Id}}.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="MultiAPCapabilities" access="readOnly">
        <description>
          The Multi-AP capabilities supported by this device as defined by the
          APCapability TLV in {{bibref|EasyMesh|Section 17.2.6}}.
        </description>
        <syntax>
          <base64>
            <size minLength="1" maxLength="1"/>
          </base64>
        </syntax>
      </parameter>

      <parameter name="CollectionInterval" access="readOnly">
        <description>
          The interval between the collection of consecutive measurements of
          the most frequently updated Data Element from this device in
          {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ReportUnsuccessfulAssociations" access="readWrite"
          version="2.15">
        <description>
          Indicates whether the Multi-AP Agent or the single AP reports
          unsuccessful association attempts of client Stations (STAs) to the
          Multi-AP Controller.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MaxReportingRate" access="readOnly" version="2.15"
          status="deprecated">
        <description>
          Maximum rate for reporting unsuccessful association attempts in
          {{units}}.

          {{deprecated|2.19|because it was the same as
          {{param|MaxUnsuccessfulAssociationReportingRate}}.}}
        </description>
        <syntax>
          <unsignedInt>
            <units value="attempts per minute"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="APMetricsReportingInterval" access="readWrite"
          version="2.15">
        <description>
          AP Metrics Reporting Interval.

          : 0: Do not report AP Metrics periodically;

          : 1 - 255: AP Metrics reporting interval in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="AssociatedSTAReportingInterval" access="readWrite"
          version="2.17">
        <description>
          Associated STA Reporting Interval.

          0: Do not report associated STA Metrics periodically;

          1 - 255: Associated STA Metrics reporting interval in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Manufacturer" access="readOnly" version="2.15">
        <description>
          Identifier of the manufacturer of the device.

          If the instance of this {{object}} is the same as {{object|Device.}},
          then this parameter is the same as
          {{param|Device.DeviceInfo.Manufacturer}}.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="SerialNumber" access="readOnly" version="2.15">
        <description>
          Identifier of the particular Access Point device that is unique for
          the indicated model and manufacturer.

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

          If the instance of this {{object}} is the same as {{object|Device.}},
          then this parameter is the same as
          {{param|Device.DeviceInfo.SerialNumber}}.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="ManufacturerModel" access="readOnly" version="2.15">
        <description>
          Identifier of the manufacturer model to help the user more easily
          identify a particular piece of equipment.

          If the instance of this {{object}} is the same as {{object|Device.}},
          then this parameter is the same as
          {{param|Device.DeviceInfo.ModelName}}.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="SoftwareVersion" access="readOnly" version="2.15">
        <description>
          Identifier of the software version currently installed in the Access
          Point device (i.e. version of the overall firmware).

          If the instance of this {{object}} is the same as {{object|Device.}},
          then this parameter is the same as
          {{param|Device.DeviceInfo.SoftwareVersion}}.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="ExecutionEnv" access="readOnly" version="2.15">
        <description>
          Identifier of the execution environment (operating system) in the
          device. This parameter can be an entry in the table
          {{object|####.SoftwareModules.ExecEnv}}.

          If the instance of this {{object}} is the same as {{object|Device.}},
          then this parameter is the same as
          {{object|Device.SoftwareModules.ExecEnv.{i}.}}.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="DSCPMap" access="readOnly" version="2.15">
        <description>
          A hexadecimal string of 64 Priority Code Point (PCP) values (one
          octet per value) corresponding to the Differentiated Services Code
          Point (DSCP) markings 0x00 to 0x3F, ordered by increasing DSCP value.
          Each octet is in the range 0x00 - 0x07. This is used to select a PCP
          value if a Service Prioritization Rule specifies Rule Output: 0x08
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="64"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="MaxPrioritizationRules" access="readOnly"
          version="2.15">
        <description>
          The maximum total number of service prioritization rules supported by
          the Agent.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="PrioritizationSupport" access="readOnly" version="2.15">
        <description>
          Indicates support for Service Prioritization.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MaxVIDs" access="readOnly" version="2.15">
        <description>
          Max Total Number of unique VLAN IDs (VIDs) the Multi-AP Agent
          supports.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="APMetricsWiFi6" access="readOnly" version="2.15"
          status="deleted">
        <description>
          Associated Wi-Fi6 STA Status Inclusion Policy.

          : {{true}}: Include Associated Wi-Fi6 STA Status TLV in AP Metrics
            Response.

          : {{false}}: Do not include Associated Wi-Fi6 STA Status TLV [3] in
            AP Metrics Response.

          {{deprecated|2.16|because it was the same as
          {{param|Radio.{i}.APMetricsWiFi6}}.}}

          {{obsoleted|2.18}}

          {{deleted|2.19}}
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="CountryCode" access="readOnly" version="2.15">
        <description>
          Two-character country code in which the Multi-AP Agent is operating
          according to {{bibref|ISO3166-1}}. The characters are encoded as
          UTF-8.

          If the instance of this {{object|##}} is the same as
          {{object|Device.WiFi.Radio.{i}.}}, then this parameter is the same as
          {{param|Device.WiFi.Radio.{i}.RegulatoryDomain}}.
        </description>
        <syntax>
          <string>
            <size minLength="2" maxLength="2"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LocalSteeringDisallowedSTAList" access="readWrite"
          version="2.15">
        <description>
          {{list}} The STAs for which local steering is disallowed.
        </description>
        <syntax>
          <list/>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="BTMSteeringDisallowedSTAList" access="readWrite"
          version="2.15">
        <description>
          {{list}} The STAs for which BSS Transition Management (BTM) steering
          is disallowed.
        </description>
        <syntax>
          <list/>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="DFSEnable" access="readOnly" version="2.15">
        <description>
          Indicates if Dynamic Frequency Selection (DFS) is enabled or
          disabled.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="ReportIndependentScans" access="readWrite"
          version="2.15">
        <description>
          Channel Scan Reporting Policy, Report Independent Channel Scans

          : {{true}}: report Independent Channel Scans,

          : {{false}}: do not report Independent Channel Scans unless
            explicitly requested in a Channel Scan Request.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="AssociatedSTAinAPMetricsWiFi6" access="readWrite"
          version="2.15" status="deleted">
        <description>
          For EasyMesh {{bibref|EasyMesh}}, this is the Associated Wi-Fi6 STA
          Status Inclusion Policy.

          : {{true}}: Include Associated Wi-Fi6 STA Status TLV in AP Metrics
            Response;

          : {{false}}: Do not include Associated Wi-Fi6 STA Status TLV in AP
            Metrics Response.

          {{deprecated|2.16|because it was the same as
          {{param|Radio.{i}.APMetricsWiFi6}}.}}

          {{obsoleted|2.18}}

          {{deleted|2.19}}
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MaxUnsuccessfulAssociationReportingRate"
          access="readWrite" version="2.15">
        <description>
          For EasyMesh {{bibref|EasyMesh}}, this is the maximum rate for
          reporting unsuccessful association attempts (in attempts per
          {{units}}).
        </description>
        <syntax>
          <unsignedInt>
            <units value="minutes"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="STASteeringState" access="readOnly" version="2.15">
        <description>
          Indicates if EasyMesh {{bibref|EasyMesh}} controller-initiated
          station steering is disallowed or allowed on this device.

          : {{true}}: EasyMesh controller-initiated station steering
            disallowed;

          : {{false}}: EasyMesh controller-initiated station steering allowed.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="CoordinatedCACAllowed" access="readWrite"
          version="2.15">
        <description>
          Allow or disallow the use of EasyMesh {{bibref|EasyMesh}} Coordinated
          Channel Availability Check (CAC) on this device.

          : {{true}}: allowed;

          : {{false}}: disallowed.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="TrafficSeparationAllowed" access="readOnly"
          version="2.15">
        <description>
          This parameter indicates if EasyMesh traffic separation
          {{bibref|EasyMesh|Section 19.1}} is allowed or disallowed.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="ServicePrioritizationAllowed" access="readOnly"
          version="2.15">
        <description>
          This parameter indicates if EasyMesh service prioritization
          {{bibref|EasyMesh|Section 20}} is allowed or disallowed.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="ControllerOperationMode" access="readOnly"
          version="2.17">
        <description>
          This parameter represents the status of Wi-Fi EasyMesh controller
          functionality. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="NotSupported">
              <description>
                Wi-Fi EasyMesh controller is not supported.
              </description>
            </enumeration>
            <enumeration value="SupportedNotEnabled">
              <description>
                Wi-Fi EasyMesh controller is supported but not enabled.
              </description>
            </enumeration>
            <enumeration value="Running">
              <description>Wi-Fi EasyMesh controller is running.</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="BackhaulMACAddress" access="readOnly" version="2.17">
        <description>
          The MAC address of the interface on the network that is providing the
          backhaul for this EasyMesh Agent. For Wi-Fi backhaul, this is the
          BSSID or AP MLD address of the backhaul BSS.

          Interfaces of EasyMesh Agents that are downstream of this EasyMesh
          Agent are identified by
          {{param|BackhaulDown.{i}.BackhaulDownMACAddress}}.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="BackhaulALID" access="readOnly" version="2.17">
        <description>
          The IEEE 1905 {{bibref|IEEE1905.1a}} Abstraction-Layer ID (ALID) of
          the EasyMesh Agent on the network that is providing the backhaul for
          this EasyMesh Agent.

          EasyMesh Agents that are downstream of this EasyMesh agent are
          identified by {{param|BackhaulDown.{i}.BackhaulDownALID}}.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="BackhaulDownMACAddress" access="readOnly"
          status="deprecated" version="2.17">
        <description>
          {{list}} Each MAC address is that of a downstream EasyMesh agent's
          backhaul link.

          {{deprecated|2.19|because it was replaced by
          {{param|BackhaulDown.{i}.BackhaulDownMACAddress}}.}}
        </description>
        <syntax>
          <list/>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="BackhaulMediaType" access="readOnly" version="2.17">
        <description>
          Media type of the backhaul link of this EasyMesh Agent.

          This value can be derived from the neighbor's topology response
          message 1905 device information type TLV Media Type field defined in
          {{bibref|IEEE1905.1a|Table 6-12}}. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="IEEE 802.3u">
              <description>IEEE 802.3u Fast Ethernet</description>
            </enumeration>
            <enumeration value="IEEE 802.3ab">
              <description>IEEE 802.3ab Gigabit Ethernet</description>
            </enumeration>
            <enumeration value="IEEE 802.11b">
              <description>IEEE 802.11b (2.4GHz)</description>
            </enumeration>
            <enumeration value="IEEE 802.11g">
              <description>IEEE 802.11g (2.4GHz)</description>
            </enumeration>
            <enumeration value="IEEE 802.11a">
              <description>IEEE 802.11a (5GHz)</description>
            </enumeration>
            <enumeration value="IEEE 802.11n 2.4">
              <description>IEEE 802.11n (2.4GHz)</description>
            </enumeration>
            <enumeration value="IEEE 802.11n 5.0">
              <description>IEEE 802.11n (5GHz)</description>
            </enumeration>
            <enumeration value="IEEE 802.11ac">
              <description>IEEE 802.11ac (5GHz)</description>
            </enumeration>
            <enumeration value="IEEE 802.11ad">
              <description>IEEE 802.11ad (60GHz)</description>
            </enumeration>
            <enumeration value="IEEE 802.11af">
              <description>IEEE 802.11af</description>
            </enumeration>
            <enumeration value="IEEE 802.11ax">
              <description>IEEE 802.11ax</description>
            </enumeration>
            <enumeration value="IEEE 802.11be">
              <description>IEEE 802.11be</description>
            </enumeration>
            <enumeration value="IEEE 1901 Wavelet">
              <description>IEEE 1901 Wavelet</description>
            </enumeration>
            <enumeration value="IEEE 1901 FFT">
              <description>IEEE 1901 FFT</description>
            </enumeration>
            <enumeration value="MoCAv1.1">
              <description>MoCAv1.1</description>
            </enumeration>
            <enumeration value="Generic PHY"/>
            <enumeration value="IEEE 802.11ah" version="2.19">
              <description>IEEE 802.11ah HaLow</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="BackhaulPHYRate" access="readOnly" version="2.17">
        <description>
          The Physical Layer (PHY) rate in {{units}} on the backhaul link of
          this EasyMesh agent.
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mb/s"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TrafficSeparationCapability" access="readOnly"
          version="2.17">
        <description>
          Indicator of EasyMesh Agent capability to support EasyMesh
          {{bibref|EasyMesh}} 802.1Q C-TAG Traffic Separation.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="EasyConnectCapability" access="readOnly" version="2.17">
        <description>
          Indicator of the device capability to support Wi-Fi Easy Connect
          onboarding.

          Indicated in the DPP Onboarding field of the EasyMesh Profile-2 AP
          Capability TLV {{bibref|EasyMesh}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="TestCapabilities" access="readOnly" version="2.17">
        <description>
          Indicates EasyMesh agent support for running a throughput or latency
          test.

          0 indicates that the EasyMesh Agent or single-AP does not support any
          throughput test and does not support a latency test.

          1 indicates that the EasyMesh Agent or single-AP supports a
          throughput test but does not support a latency test.

          2 indicates that the EasyMesh Agent or single-AP supports a latency
          test but does not support a throughput test.

          3 indicates that the EasyMesh Agent or single-AP supports a
          throughput test and a latency test.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

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

      <parameter name="Default8021QNumberOfEntries" access="readOnly"
          version="2.15">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SSIDtoVIDMappingNumberOfEntries" access="readOnly"
          version="2.15">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="CACStatusNumberOfEntries" access="readOnly"
          version="2.15">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="IEEE1905SecurityNumberOfEntries" access="readOnly"
          version="2.15">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SPRuleNumberOfEntries" access="readOnly" version="2.15">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="AnticipatedChannelsNumberOfEntries" access="readOnly"
          version="2.15">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="AnticipatedChannelUsageNumberOfEntries"
          access="readOnly" version="2.15">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MaxNumMLDs" access="readOnly" version="2.17">
        <description>
          The maximum number of MLDs that the EasyMesh Agent can support.
          {{bibref|EasyMesh}} source: Wi-Fi 7 Agent Capabilities TLV.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="APMLDMaxLinks" access="readOnly" version="2.17">
        <description>
          The maximum number of affiliated APs supported by any APMLD on this
          EasyMesh Agent. Set to a value between 0 and 14, which is the number
          of affiliated APs minus 1. The value of 15 is reserved.
          {{bibref|EasyMesh}} source: Wi-Fi 7 Agent Capabilities TLV.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="15"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="bSTAMLDMaxLinks" access="readOnly" version="2.17"
          dmr:noNameCheck="true">
        <description>
          The maximum number of affiliated bSTAs supported by the bSTAMLD on
          this EasyMesh Agent. Set to a value between 0 and 14, which is the
          number of affiliated bSTAs minus 1. The value of 15 is reserved.
          {{bibref|EasyMesh}} source: Wi-Fi 7 Agent Capabilities TLV.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="15"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TIDLinkMapCapability" access="readOnly" version="2.17">
        <description>
          Indicates the EasyMesh Agent support for TID to Link mapping.
          {{bibref|EasyMesh}} source: Wi-Fi 7 Agent Capabilities TLV. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="0">
              <description>
                The EasyMesh Agent does not support TID-to-link mapping.
              </description>
            </enumeration>
            <enumeration value="1">
              <description>
                The EasyMesh Agent supports the mapping of each TID to the same
                or different link set.
              </description>
            </enumeration>
            <enumeration value="2">
              <description>
                The EasyMesh Agent only supports the mapping of all TIDs to the
                same link set.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="APMLDNumberOfEntries" access="readOnly" version="2.17">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

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

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Default8021Q.{i}."
        access="readWrite" numEntriesParameter="Default8021QNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded"
        version="2.15">
      <description>
        The default 802.1Q settings for EasyMesh service prioritization
        {{bibref|EasyMesh}}.
      </description>
      <uniqueKey functional="true">
        <parameter ref="PrimaryVID"/>
      </uniqueKey>

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

      <parameter name="PrimaryVID" access="readWrite">
        <description>
          The primary 802.1Q C-TAG (VLAN ID).
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="4095"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="DefaultPCP" access="readWrite">
        <description>
          The default Priority Code Point (PCP).
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="7"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.SSIDtoVIDMapping.{i}."
        access="readOnly" numEntriesParameter="SSIDtoVIDMappingNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.15">
      <description>
        The Service Set Identifier (SSID) to VLAN ID mapping for EasyMesh
        traffic separation {{bibref|EasyMesh}}.
      </description>
      <uniqueKey functional="true">
        <parameter ref="SSID"/>
      </uniqueKey>

      <parameter name="SSID" access="readOnly" version="2.15">
        <description>
          The SSID.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="VID" access="readOnly" version="2.15">
        <description>
          The VLAN ID (VID).
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="4095"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.DataElements.Network.Device.{i}.CACStatus.{i}."
        access="readOnly" numEntriesParameter="CACStatusNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.15">
      <description>
        Latest Channel Availability Check (CAC) Status Report from the device.
      </description>
      <uniqueKey functional="true">
        <parameter ref="TimeStamp"/>
      </uniqueKey>

      <parameter name="TimeStamp" access="readOnly">
        <description>
          The time this group was collected.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

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

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

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

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.CACStatus.{i}.CACAvailableChannel.{i}."
        access="readOnly"
        numEntriesParameter="CACAvailableChannelNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.15">
      <description>
        This object describes available channels identified by Channel
        Availability Check (CAC).
      </description>
      <uniqueKey functional="true">
        <parameter ref="OpClass"/>
        <parameter ref="Channel"/>
      </uniqueKey>

      <parameter name="OpClass" access="readOnly">
        <description>
          This is the operating class of an available channel, from
          {{bibref|802.11ax|Table E-4}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Channel" access="readOnly">
        <description>
          Single channel number of an available channel in the given operating
          class.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Minutes" access="readOnly">
        <description>
          {{units}} since CAC was completed identifying available channel.
          Equals zero for non-DFS channels.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="65535"/>
            <units value="Minutes"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.CACStatus.{i}.CACNonOccupancyChannel.{i}."
        access="readOnly"
        numEntriesParameter="CACNonOccupancyChannelNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.15">
      <description>
        This object describes channels identified by Channel Availability Check
        (CAC) that may not be occupied.
      </description>
      <uniqueKey functional="true">
        <parameter ref="OpClass"/>
        <parameter ref="Channel"/>
      </uniqueKey>

      <parameter name="OpClass" access="readOnly">
        <description>
          Operating class of a channel that is in the non-occupancy list, from
          {{bibref|802.11ax|Table E-4}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Channel" access="readOnly">
        <description>
          Single channel number in the operating class on which the radar was
          detected.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Seconds" access="readOnly">
        <description>
          {{units}} remaining in the non-occupancy duration for the channel
          specified by the operating class and channel pair.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="65535"/>
            <units value="Seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.CACStatus.{i}.CACActiveChannel.{i}."
        access="readOnly" numEntriesParameter="CACActiveChannelNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.15">
      <description>
        This object describes channels with ongoing Channel Availability Check
        (CAC).
      </description>
      <uniqueKey functional="true">
        <parameter ref="OpClass"/>
        <parameter ref="Channel"/>
      </uniqueKey>

      <parameter name="OpClass" access="readOnly">
        <description>
          Operating class of a channel that has ongoing CAC, from
          {{bibref|802.11ax|Table E-4}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Channel" access="readOnly">
        <description>
          Single channel number in the operating class that has an ongoing CAC.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Countdown" access="readOnly">
        <description>
          {{units}} remaining to complete the CAC.
        </description>
        <syntax>
          <unsignedInt>
            <units value="Seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.DataElements.Network.Device.{i}.SPRule.{i}."
        access="readOnly" numEntriesParameter="SPRuleNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.15">
      <description>
        This object describes a list of service prioritization (SP) rules
        {{bibref|EasyMesh}}.
      </description>
      <uniqueKey functional="true">
        <parameter ref="ID"/>
      </uniqueKey>

      <parameter name="ID" access="readOnly" version="2.15">
        <description>
          Service prioritization rule Identifier.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="Precedence" access="readOnly" version="2.15">
        <description>
          Rule Precedence - higher number means higher priority.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="254"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Output" access="readOnly" version="2.15">
        <description>
          Rule Output. The value of, or method used to select, the 802.1Q C-TAG
          Priority Code Point (PCP) output value.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="9"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="AlwaysMatch" access="readOnly" version="2.15">
        <description>
          Indicates if the rule always matches.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.IEEE1905Security.{i}."
        access="readOnly" numEntriesParameter="IEEE1905SecurityNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.15">
      <description>
        This object describes the IEEE 1905 security capabilities.
      </description>
      <uniqueKey functional="false">
        <parameter ref="OnboardingProtocol"/>
      </uniqueKey>

      <parameter name="OnboardingProtocol" access="readOnly">
        <description>
          Onboarding protocols supported;

          :0: 1905 Device Provisioning Protocol as defined in the EasyMesh
           {{bibref|EasyMesh}} 1905 Layer Security Capability TLV.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="IntegrityAlgorithm" access="readOnly">
        <description>
          Message integrity algorithms supported.

          : 0: HMAC-SHA256.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="EncryptionAlgorithm" access="readOnly">
        <description>
          Message encryption algorithms supported.

          : 0: AES-SIV.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.AnticipatedChannels.{i}."
        access="readOnly"
        numEntriesParameter="AnticipatedChannelsNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.15">
      <description>
        This object contains a table of Wi-Fi 6 {{bibref|802.11ax}} operating
        classes, and channels within those operating classes, which have
        anticipated channel preference.

        Operating Class contains an enumerated value from
        {{bibref|802.11ax|Table E-4}}}.
      </description>
      <uniqueKey functional="true">
        <parameter ref="OpClass"/>
      </uniqueKey>

      <parameter name="OpClass" access="readOnly" version="2.15">
        <description>
          The Operating Class per {{bibref|802.11ax|Table E-4}}.

          Note that the operating class identifies the band and channel width.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ChannelList" access="readOnly" version="2.15">
        <description>
          {{list}} The channel numbers in this Operating Class which have
          anticipated channel preference.
        </description>
        <syntax>
          <list/>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.AnticipatedChannelUsage.{i}."
        access="readOnly"
        numEntriesParameter="AnticipatedChannelUsageNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.15">
      <description>
        This object reports Wi-Fi 6 {{bibref|802.11ax}} anticipated medium
        usage on channels (and subsets of those channels) on which the device
        is operating.
      </description>
      <uniqueKey functional="true">
        <parameter ref="OpClass"/>
      </uniqueKey>

      <parameter name="OpClass" access="readOnly">
        <description>
          The operating class per {{bibref|802.11ax|Table E-4}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Channel" access="readOnly">
        <description>
          The channel number in the given operating class of the channel on
          which the anticipated channel usage is reported.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ReferenceBSSID" access="readOnly">
        <description>
          Reference BSSID. Start Time values in this object are referenced to
          the Time Sync Function (TSF) timer value indicated in the Timestamp
          field in Beacon frames transmitted by this BSSID on the channel.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

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

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.AnticipatedChannelUsage.{i}.Entry.{i}."
        access="readOnly" numEntriesParameter="EntryNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.15">
      <description>
        This object reports an entry for anticipated channel usage
        {{bibref|802.11ax}}.
      </description>
      <uniqueKey functional="true">
        <parameter ref="BurstStartTime"/>
      </uniqueKey>

      <parameter name="BurstStartTime" access="readOnly">
        <description>
          Least significant 4 octets of the TSF timer of the Reference BSSID,
          at the start of the anticipated first burst of channel usage.

          Note: a burst is a continuous or quasi-continuous period of channel
          usage. For IEEE 802.11 transmissions, a burst might comprise only one
          PPDU, or multiple closely spaced PPDUs.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="4" maxLength="4"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="BurstLength" access="readOnly">
        <description>
          Duration of each burst of channel usage in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="microseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Repetitions" access="readOnly">
        <description>
          Number of repetitions of the burst of channel usage;

          : 0 = single burst,

          : 2^32^-1 = indefinite/unknown.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="BurstInterval" access="readOnly">
        <description>
          Interval between two successive bursts of channel usage in {{units}};
          set to zero if {{param|Repetitions}} is zero.
        </description>
        <syntax>
          <unsignedInt>
            <units value="microseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RUBitmask" access="readOnly">
        <description>
          Bitmask of 26-tone Resource Units (RUs) defined in
          {{bibref|802.11ax|Section 27.3.2.2}}, where the (i-1)th bit position
          is set to one if the nominal bandwidth of the channel usage
          corresponding to this entry fully or partially overlaps with the RUi,
          and is otherwise set to zero.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="2" maxLength="10"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="TransmitterIdentifier" access="readOnly">
        <description>
          One of:

          : MAC address: if the entry corresponds to channel usage by a single
            client STA associated to the BSS of the Agent;

          : BSSID: if the entry corresponds to channel usage by multiple or
            unspecified client STAs associated to the BSS of the Agent;

          : BSS Color: (first 42-bits are zero) if the channel usage is caused
            by a source external to the BSSs operated by the Agent and the
            BSSID cannot be decoded (since frame sent at high MCS) but the BSS
            Color in the PHY headers could still be identified;

          : Zero: if the channel usage is caused by a source external to the
            BSSs operated by the Agent.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="PowerLevel" access="readOnly">
        <description>
          Indicates maximum transmit power during each channel usage burst in
          {{units}}; equal to 255 when unknown or when the entry corresponds to
          multiple transmitters with different transmit powers
        </description>
        <syntax>
          <int>
            <units value="dBm"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="ChannelUsageReason" access="readOnly">
        <description>
          The reason for this anticipated channel usage. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="TWT_schedule"/>
            <enumeration value="TSPEC">
              <description>
                TSPEC or other traffic stream with predictable characteristics.
              </description>
            </enumeration>
            <enumeration value="Scheduler_policy">
              <description>
                Scheduler policy (if uplink, using Wi-Fi 6 trigger-based
                scheduling).
              </description>
            </enumeration>
            <enumeration value="IEEE_802.11">
              <description>
                IEEE 802.11 transmitter external to the BSSs operated by the
                reporting Agent.
              </description>
            </enumeration>
            <enumeration value="Non_IEEE_802.11">
              <description>Non-IEEE 802.11, or unknown source.</description>
            </enumeration>
            <enumeration value="BSS_non_usage">
              <description>
                BSS non-usage (in this special case, a burst is defined as a
                continuous period in which the Agent ensures no transmissions
                by any of its BSSs on the channel).
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.BackhaulDown.{i}."
        access="readOnly" numEntriesParameter="BackhaulDownNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.19">
      <description>
        This object identifies EasyMesh Agents and their interfaces that are
        downstream of this EasyMesh Agent and have backhaul to this EasyMesh
        Agent.
      </description>
      <uniqueKey functional="true">
        <parameter ref="BackhaulDownALID"/>
      </uniqueKey>

      <parameter name="BackhaulDownALID" access="readOnly">
        <description>
          The IEEE 1905 {{bibref|IEEE1905.1a}} Abstraction-Layer ID (ALID) of
          the EasyMesh Agent on the network that is downstream of this EasyMesh
          Agent and has backhaul to this EasyMesh Agent.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="BackhaulDownMACAddress" access="readOnly">
        <description>
          MAC address of the EasyMesh Agent's interface that is downstream of
          this EasyMesh Agent and has backhaul to this EasyMesh Agent.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.AFCAvailableSpectrum."
        access="readOnly" minEntries="1" maxEntries="1" version="2.19">
      <description>
        This object contains the Available Spectrum Inquiry request and
        response message defined by {{bibref|EasyMesh|Section 8.2.5}}. This
        provides information of 6 GHz spectrum availability as determined by an
        Automated Frequency Coordination (AFC) system {{bibref|AFCSDI}}.
      </description>

      <parameter name="AFCAvailableSpectrumInquiryRequest" access="readOnly">
        <description>
          One JSON encoded AvailableSpectrumInquiryRequestMessage object as
          defined in {{bibref|EasyMesh|Section 8.2.5 and Section 17.2.104
          Available Spectrum Inquiry Request TLV}}.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="AFCAvailableSpectrumInquiryResponse" access="readOnly">
        <description>
          One JSON encoded AvailableSpectrumInquiryResponseMessage object as
          defined in {{bibref|EasyMesh|Section 8.2.5 and Section 17.2.105
          Available Spectrum Inquiry Response TLV}}.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.DataElements.Network.Device.{i}.MultiAPDevice."
        access="readOnly" minEntries="1" maxEntries="1" version="2.15">
      <description>
        This object represents an individual Access Point device.
      </description>

      <parameter name="ManufacturerOUI" access="readOnly" status="deprecated">
        <description>
          Organizationally unique identifier of the Access Point 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.

          If the instance of this {{object}} is the same as {{object|Device.}},
          then this parameter is the same as
          {{param|Device.DeviceInfo.ManufacturerOUI}}.

          {{deprecated|2.18|because it was essentially the same as
          {{param|#.Manufacturer}}.}}
        </description>
        <syntax>
          <string>
            <size minLength="6" maxLength="6"/>
            <pattern value="[0-9A-F]{6}"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastContactTime" access="readOnly">
        <description>
          The last time that the Access Point device was contacted via the
          Multi-AP control protocol.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="AssocIEEE1905DeviceRef" access="readOnly">
        <description>
          {{param}} is a reference to the IEEE 1905.1 Network Topology Device.
          Since IEEE 1905.1 is a common protocol used by Multi-AP Controllers
          for communications, this parameter allows the MultiAP portion of the
          data model to reference the associated IEEE 1905.1 portion of the
          data model.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong"
                targetParent="#####.IEEE1905.AL.NetworkTopology.IEEE1905Device."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="EasyMeshControllerOperationMode" access="readOnly"
          status="deprecated">
        <description>
          This parameter represents the status of Wi-Fi CERTIFIED EasyMeshTM
          controller functionality. {{enum}}

          {{deprecated|2.18|because it was the same as
          {{param|#.ControllerOperationMode}}.}}
        </description>
        <syntax>
          <string>
            <enumeration value="NotSupported">
              <description>
                Wi-Fi EasyMesh controller is not supported.
              </description>
            </enumeration>
            <enumeration value="SupportedNotEnabled">
              <description>
                Wi-Fi EasyMesh controller is supported but not enabled.
              </description>
            </enumeration>
            <enumeration value="Running">
              <description>Wi-Fi EasyMesh controller is running.</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="EasyMeshAgentOperationMode" access="readOnly">
        <description>
          This parameter represents the status of Wi-Fi CERTIFIED EasyMeshTM
          agent functionality. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="NotSupported">
              <description>Wi-Fi EasyMesh agent is not supported.</description>
            </enumeration>
            <enumeration value="SupportedNotEnabled">
              <description>
                Wi-Fi EasyMesh agent is supported but not enabled.
              </description>
            </enumeration>
            <enumeration value="Running">
              <description>Wi-Fi EasyMesh agent is running.</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.MultiAPDevice.Backhaul."
        access="readOnly" minEntries="1" maxEntries="1" version="2.15">
      <description>
        This object represents an individual Access Point device's Backhaul and
        unique aspects in the Wi-Fi network.

        The endpoints of the backhaul interface are represented by the
        (Device's ID and interface MAC Address). This object represents the
        upward view of the backhaul interface. The two endpoints of the
        backhaul interface are - ({{param|BackhaulDeviceID|deprecated}},
        {{param|BackhaulMACAddress|deprecated}}) of the uplinked Backhaul
        Device - {{param|MACAddress|deprecated}} of this Access Point Device.

        {{empty}} is reserved for the {{object}} instance that represents the
        Multi-AP Controller.
      </description>

      <parameter name="LinkType" access="readOnly" status="deprecated">
        <description>
          The medium being used to backhaul this Access Point Device to the
          Backhaul Access Point Device. The {{enum|None}} value is reserved for
          the {{object}} instance that represents the Multi-AP Controller.
          {{enum}}

          {{deprecated|2.18|because it was essentially the same as
          {{param|##.BackhaulMediaType}}.}}
        </description>
        <syntax>
          <string>
            <enumeration value="None"/>
            <enumeration value="Wi-Fi"/>
            <enumeration value="MoCA"/>
            <enumeration value="Ethernet"/>
            <enumeration value="G.hn"/>
            <enumeration value="HPNA"/>
            <enumeration value="HomePlug"/>
            <enumeration value="UPA"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="BackhaulMACAddress" access="readOnly"
          status="deprecated">
        <description>
          The MAC Address at the far end of the backhaul link of the interface
          on the network that is providing a backhaul for this Access Point
          Device. This along with {{param|BackhaulDeviceID|deprecated}}, helps
          to identify the backhaul interface endpoint.

          {{empty}} is reserved for the {{object}} instance that represents the
          Multi-AP Controller.

          {{deprecated|2.18|because it was the same as
          {{param|##.BackhaulMACAddress}}.}}
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="BackhaulDeviceID" access="readOnly" status="deprecated">
        <description>
          The Device's ID of the Device on the network that is providing a
          Backhaul Link for this Access Point Device.

          {{deprecated|2.18|because it was essentially the same as
          {{param|##.BackhaulALID}}.}}
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="MACAddress" access="readOnly" status="deprecated">
        <description>
          The MAC Address at the near end of the backhaul link of this Access
          Point Device's backhaul interface that is connecting via
          {{param|##.BackhaulMediaType}} to {{param|BackhaulMACAddress}} of the
          Backhaul Device identified by {{param|BackhaulDeviceID}}.

          {{deprecated|2.18|because it was the same as
          {{param|##.Radio.{i}.BackhaulSta.MACAddress}}.}}
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

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

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.MultiAPDevice.Backhaul.CurrentOperatingClassProfile.{i}."
        access="readOnly"
        numEntriesParameter="CurrentOperatingClassProfileNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.15">
      <description>
        Describes one of the current Operating Classes in use by this Radio.
        One Opeating Class is indicated for each current Operating Channel
        Bandwidth.

        The Channel indicated for the 20 MHz Operating Class is equal to the
        current primary channel.
      </description>
      <uniqueKey functional="true">
        <parameter ref="Class"/>
      </uniqueKey>

      <parameter name="Class" access="readOnly">
        <description>
          The Operating Class per {{bibref|802.11ax|Table E-4}} that this radio
          is currently operating on.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Channel" access="readOnly">
        <description>
          This Channel number in the Operating Class that this Radio is
          currently operating on.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TxPower" access="readOnly">
        <description>
          Nominal Transmit Power EIRP that this radio is currently using for
          the current Channel in the Opeating Class.

          Represented as 2's complement signed integer in units of decibels
          relative to 1 mW ({{units}}).
        </description>
        <syntax>
          <int>
            <range minInclusive="-127" maxInclusive="127"/>
            <units value="dBm"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="TimeStamp" access="readOnly">
        <description>
          The time this group was collected.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.MultiAPDevice.Backhaul.Stats."
        access="readOnly" minEntries="1" maxEntries="1" version="2.15">
      <description>
        This object represents the statistics of the backhaul interface view
        from the current Device's ID
      </description>

      <parameter name="BytesSent" access="readOnly">
        <description>
          The total number of bytes transmitted across the backhaul medium (as
          identified by the value of the {{param|###.BackhaulMediaType}}}}
          parameter), including framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" access="readOnly">
        <description>
          The total number of bytes received across the backhaul medium (as
          identified by the value of the {{param|###.BackhaulMediaType}}
          parameter), including framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" access="readOnly">
        <description>
          The total number of packets transmitted across the backhaul medium
          (as identified by the value of the {{param|###.BackhaulMediaType}}
          parameter), including framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" access="readOnly">
        <description>
          The total number of packets received across the backhaul medium (as
          identified by the value of the {{param|###.BackhaulMediaType}}
          parameter), including framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

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

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

      <parameter name="LinkUtilization" access="readOnly">
        <description>
          Current utilization (expressed in {{units}}) of the medium (as
          identified by the value of the {{param|###.BackhaulMediaType}}
          parameter) being used to backhaul this Access Point device to the
          Multi-AP Controller. A value of 0 is used for the {{object}} instance
          that represents the Access Point on the Multi-AP Controller.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="100"/>
            <units value="%"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SignalStrength" access="readOnly">
        <description>
          An indicator of radio signal strength of the backhaul link of the
          Access Point (AP) to the Multi-AP Controller, measured in {{units}}.
          RCPI is encoded per {{bibref|802.11-2020|Table 9-176}}. The value of
          this parameter is indeterminate if the value of the
          {{param|###.BackhaulMediaType}} parameter is anything other than a
          type of IEEE 802.11 Wi-Fi.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
            <units value="dBm"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LastDataDownlinkRate" access="readOnly">
        <description>
          The data transmit rate in {{units}} that was most recently used for
          transmission of data from the access point to the associated device.
        </description>
        <syntax>
          <unsignedInt>
            <units value="kbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LastDataUplinkRate" access="readOnly">
        <description>
          The data transmit rate in {{units}} that was most recently used for
          transmission of data from the associated device to the access point.
        </description>
        <syntax>
          <unsignedInt>
            <units value="kbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TimeStamp" access="readOnly">
        <description>
          The time this group was collected.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}."
        access="readOnly" numEntriesParameter="RadioNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.13">
      <description>
        This object represents all of the individual Radios contained within
        the identified Access Point device known to the controller.
      </description>
      <uniqueKey functional="true">
        <parameter ref="ID"/>
      </uniqueKey>

      <parameter name="ID" access="readOnly">
        <description>
          A unique identifier for this particular Radio within the identified
          Access Point as defined in {{bibref|DataElements|Section 3.1}}.
        </description>
        <syntax>
          <base64>
            <size minLength="6" maxLength="6"/>
          </base64>
        </syntax>
      </parameter>

      <parameter name="Enabled" access="readOnly">
        <description>
          Indicates whether this radio is enabled or disabled.

          If the instance of this {{object}} is the same as
          {{object|Device.WiFi.Radio.{i}.}}, then this parameter is the same as
          {{param|Device.WiFi.Radio.{i}.Enable}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Noise" access="readOnly">
        <description>
          An indicator of the average radio noise plus interference power
          measured for the primary operating channel.

          Encoded as defined for ANPI in {{bibref|802.11-2020|Section
          11.10.9.4}}.

          If the instance of this {{object}} is the same as
          {{object|Device.WiFi.Radio.{i}.}}, then this parameter is the same as
          {{param|Device.WiFi.Radio.{i}.Stats.Noise}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Utilization" access="readOnly">
        <description>
          (Total Channel Utililzation) The percentage of time (linearly scaled
          with 255 representing 100%) that the Access Point device sensed the
          medium was busy, as indicated by either the physical or virtual
          carier sense (CS) mechanism. This is essentially the amount of time
          spent transmitting (both successful and failed transmissions),
          receiving (both local and non-local transmissions), and processing
          noise {{bibref|802.11-2020|Section 9.4.2.27}}.

          When more than one channel is in use for the BSS operating on the
          radio, the {{param}} value is calculated only for the primary
          channel.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Transmit" access="readOnly">
        <description>
          (Transmit Channel Utilization) The percentage of time (linearly
          scaled with 255 representing 100%) that the radio has spent on
          sending individually or group addressed transmissions (successful and
          failed).

          When more than one channel is in use for the BSS operating on the
          radio, the {{param}} value is calculated only for the primary
          channel.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ReceiveSelf" access="readOnly">
        <description>
          (Receive Local Channel Utilization) The percentage of time (linearly
          scaled with 255 representing 100%) that the radio has spent on
          receiving individually or group addressed local transmissions (i.e.
          transmissions from any STA associated with any BSS operating on this
          radio).

          When more than one channel is in use for the BSS operating on the
          radio, the {{param}} value is calculated only for the primary
          channel.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ReceiveOther" access="readOnly">
        <description>
          (Receive Non-Local Channel Utilization) The percentage of time
          (linearly scaled with 255 representing 100%) that the radio has spent
          on receiving individually or group addressed non-local transmissions
          (i.e. valid IEEE 802.11 PPDUs that are not associated with any BSS
          operating on this radio).

          When more than one channel is in use for the BSS operating on the
          radio, the {{param}} value is calculated only for the primary
          channel.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TrafficSeparationCombinedFronthaul" access="readOnly"
          version="2.15">
        <description>
          Indicates traffic separation on combined fronthaul and Profile-1
          backhaul support {{bibref|EasyMesh}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="TrafficSeparationCombinedBackhaul" access="readOnly"
          version="2.15">
        <description>
          Indicates traffic separation on combined Profile-1 backhaul and
          Profile-2 backhaul support {{bibref|EasyMesh}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="SteeringPolicy" access="readWrite" version="2.15">
        <description>
          Steering Policy:

          : 0: Agent Initiated Steering Disallowed;

          : 1: Agent Initiated Receive Channel Power Indicator (RCPI)-based
            Steering Mandated;

          : 2: Agent Initiated RCPI-based Steering Allowed.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="2"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ChannelUtilizationThreshold" access="readWrite"
          version="2.15">
        <description>
          Channel Utilization Threshold (defined per Basic Service Set (BSS)
          Load element {{bibref|802.11-2020|Section 9.4.2.27}}.).
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RCPISteeringThreshold" access="readWrite"
          version="2.15">
        <description>
          RCPI Steering Threshold (encoded per {{bibref|802.11-2020|Table
          9-176}}).
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="220"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="STAReportingRCPIThreshold" access="readWrite"
          version="2.15">
        <description>
          Station (STA) Metrics Reporting RCPI Threshold.

          : 0: Do not report STA Metrics based on RCPI threshold.

          : 1 - 220: RCPI threshold (encoded per {{bibref|802.11-2020|Table
            9-176}}).
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="220"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="STAReportingRCPIHysteresisMarginOverride"
          access="readWrite" version="2.15">
        <description>
          STA Metrics Reporting RCPI Hysteresis Margin Override.

          : 0: Use Agent's implementation-specific default RCPI Hysteresis
            margin;

          : &gt;0: RCPI hysteresis margin value. This field is coded as an
            unsigned integer in units of {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="decibels (dB)"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ChannelUtilizationReportingThreshold"
          access="readWrite" version="2.15">
        <description>
          AP Metrics Channel Utilization Reporting Threshold.

          : 0: Do not report AP Metrics based on Channel utilization threshold;

          : &gt;0: AP Metrics Channel Utilization Reporting Threshold (similar
            to channel utilization measurement in {{bibref|802.11-2020|Section
            9.4.2.27}}).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="AssociatedSTATrafficStatsInclusionPolicy"
          access="readWrite" version="2.15">
        <description>
          Associated STA Traffic Stats Inclusion Policy.

          : {{true}}: Include Associated STA Traffic Stats TLV in AP Metrics
            Response.

          : {{false}}: Do not include Associated STA Traffic Stats
            Type-Length-Value (TLV) in AP Metrics Response;
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="AssociatedSTALinkMetricsInclusionPolicy"
          access="readWrite" version="2.15">
        <description>
          Associated STA Link Metrics Inclusion Policy.

          : {{true}}: Include Associated STA Link Metrics TLV in AP Metrics
            Response.

          : {{false}}: Do not include Associated STA Link Metrics TLV in AP
            Metrics Response;
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="ChipsetVendor" access="readOnly" version="2.15">
        <description>
          A string identifying the Wi-Fi chip vendor of this radio in the
          device.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="APMetricsWiFi6" access="readWrite" version="2.15">
        <description>
          Associated Wi-Fi6 STA Status Inclusion Policy.

          : {{true}}: include Associated Wi-Fi6 STA Status TLV in AP Metrics
            Response.

          : {{false}}: do not include Associated Wi-Fi6 STA Status TLV [3] in
            AP Metrics Response.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MaxBSS" access="readOnly" version="2.19">
        <description>
          Maximum number of BSSs supported by this radio.
          {{bibref|EasyMesh|Section 17.2.7, AP Radio Basic Capabilities TLV}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

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

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

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

      <parameter name="ScanResultNumberOfEntries" access="readOnly"
          version="2.14">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="DisAllowedOpClassChannelsNumberOfEntries"
          access="readOnly" version="2.15">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

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

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.ScanResult.{i}."
        access="readOnly" numEntriesParameter="ScanResultNumberOfEntries"
        minEntries="0" maxEntries="unbounded" dmr:noUniqueKeys="true"
        version="2.14">
      <description>
        The list of neighboring Access Points discovered by a Radio organized
        per Operating Class and Channel tuple.
      </description>

      <parameter name="TimeStamp" access="readOnly">
        <description>
          The timestamp of the last scan. Formatted with the date-and-time
          string format as defined in {{bibref|RFC3339|Section 3}}.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="AggregateScanDuration" access="readOnly" version="2.17">
        <description>
          Total time spent performing the scan of this channel in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ScanType" access="readOnly" version="2.17">
        <description>
          Indicates whether the scan was performed passively (false) or with
          active probing (true).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

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

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.ScanResult.{i}.OpClassScan.{i}."
        access="readOnly" numEntriesParameter="OpClassScanNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.14">
      <description>
        The Operating Class of neighboring Access Points discovered by a Radio
        during a channel scan.
      </description>
      <uniqueKey functional="true">
        <parameter ref="OperatingClass"/>
      </uniqueKey>

      <parameter name="OperatingClass" access="readOnly">
        <description>
          The Operating Class per {{bibref|802.11ax|Table E-4}} of the OpClass
          and Channel tuple scanned by the Radio. For 2.4GHz and 5GHz bands,
          only 20MHz Operating Classes are valid.

          Note that the Operating Class identifies the band and channel width.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

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

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.ScanResult.{i}.OpClassScan.{i}.ChannelScan.{i}."
        access="readOnly" numEntriesParameter="ChannelScanNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.14">
      <description>
        The Channel associated with an Operating Class of neighboring Access
        Points discovered by a Radio during a channel scan.
      </description>
      <uniqueKey functional="true">
        <parameter ref="Channel"/>
      </uniqueKey>

      <parameter name="Channel" access="readOnly">
        <description>
          The channel number of the Channel scanned by the Radio given the
          Operating Class.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TimeStamp" access="readOnly">
        <description>
          The timestamp of the last scan of the channel. Formatted with the
          date-and-time string format as defined in {{bibref|RFC3339|Section
          3}}.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="Utilization" access="readOnly">
        <description>
          The current Channel Utilization measured by the Radio on the scanned
          20MHz channel, as defined by {{bibref|802.11-2020|Section 9.4.2.27}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Noise" access="readOnly">
        <description>
          An indicator of the average radio noise plus interference power
          measured for the primary operating channel.

          Encoded as defined for ANPI in {{bibref|802.11-2020|Section
          11.10.9.4}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ScanStatus" access="readOnly" version="2.17">
        <description>
          Status code to indicate whether a scan has been performed and if not
          the reason for failure {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="0">
              <description>Success</description>
            </enumeration>
            <enumeration value="1">
              <description>
                Scan not supported on this opclass and channel
              </description>
            </enumeration>
            <enumeration value="2">
              <description>
                Request too soon after last scan
              </description>
            </enumeration>
            <enumeration value="3">
              <description>Radio too busy to perform scan</description>
            </enumeration>
            <enumeration value="4">
              <description>Scan not completed</description>
            </enumeration>
            <enumeration value="5">
              <description>Scan aborted</description>
            </enumeration>
            <enumeration value="6">
              <description>
                Fresh scan not supported, radio only supports on boot scans
              </description>
            </enumeration>
            <enumeration value="7">
              <description>reserved</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

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

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.ScanResult.{i}.OpClassScan.{i}.ChannelScan.{i}.NeighborBSS.{i}."
        access="readOnly" numEntriesParameter="NeighborBSSNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.14">
      <description>
        The neighboring BSS discovered by a Radio during a channel scan.

        For MLDs, {{param|MLDMACAddress}} identifies the APMLD for which this
        NeighborBSS.{i}. is an affilated AP, other affiliated APs in this
        {{object}} have the same value of {{param|MLDMACAddress}}.
      </description>
      <uniqueKey functional="true">
        <parameter ref="BSSID"/>
      </uniqueKey>

      <parameter name="BSSID" access="readOnly">
        <description>
          The BSSID indicated by the neighboring BSS.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="SSID" access="readOnly">
        <description>
          The SSID indicated by the neighboring BSS.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="SignalStrength" access="readOnly">
        <description>
          An indicator of radio signal strength (RSSI) of the Beacon or Probe
          Response frames of the neighboring BSS as received by the radio
          measured in {{units}}. (RSSI is encoded per
          {{bibref|802.11-2020|Table 9-176}}). Reserved: 221 - 255.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
            <units value="dBm"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ChannelBandwidth" access="readOnly">
        <description>
          Indicates the maximum bandwidth at which the neighboring BSS is
          operating. e.g. "1" or "2" or "4" or "8"” or "16" or "20" or "40" or
          "80" or "80+80" or "160" or "320" MHz.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="ChannelUtilization" access="readOnly">
        <description>
          The channel utilization reported by the neighboring BSS per the BSS
          Load element if present in Beacon or Probe Response frames, as
          defined by {{bibref|802.11-2020|Section 9.4.2.27}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="StationCount" access="readOnly">
        <description>
          The number of Associated Devices (STA) reported by this neighboring
          BSS per the BSS Load element if present in Beacon or Probe Response
          frames as defined by {{bibref|802.11-2020|Section 9.4.2.27}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MLDMACAddress" access="readOnly" version="2.17">
        <description>
          The Multi-Link Device (MLD) MAC address of the Multi-Link Operation
          (MLO) capable access point this neighboring BSS is affiliated to.
          Null if the neighboring BSS is not an affiliated AP.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="ReportingBSSID" access="readOnly" version="2.17">
        <description>
          The BSSID of the reporting BSSID if different from {{param|BSSID}}.
          This will be set if the NeigborBSS was discovered through, for
          example, a Reduced Neighbor Report. EasyMesh {{bibref|EasyMesh}}
          source: Channel Scan Result TLV.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="MultiBSSID" access="readOnly" version="2.17">
        <description>
          Indicates if the neighboring BSS is part of a MultiBSSID set and may
          be a non-transmitted BSSID.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BSSLoadElementPresent" access="readOnly" version="2.17">
        <description>
          Set to true if the neighbour BSS Beacon/Probe Responses include a
          BSSLoad Element as defined in {{bibref|802.11-2020|Section
          9.4.2.28}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BSSColor" access="readOnly" version="2.17">
        <description>
          Set to the BSS Color from the BSS Color Information field in the
          BSS's HE Operation element.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="63"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BackhaulSta."
        access="readOnly" minEntries="1" maxEntries="1" version="2.13">
      <description>
        Contains the Medium Access Control (MAC) address of the STA on this
        radio providing Wi-Fi backhaul to this device.
      </description>

      <parameter name="MACAddress" access="readOnly">
        <description>
          The MAC address of the logical STA sharing the radio for Wi-Fi
          backhaul.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.ScanCapability."
        access="readOnly" minEntries="1" maxEntries="1" version="2.15">
      <description>
        This object describes the channel scan capabilities of a radio.
      </description>

      <parameter name="OnBootOnly" access="readOnly" version="2.15">
        <description>
          On boot only flag, Indicates whether the specified radio is capable
          only of On boot scans.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Impact" access="readOnly" version="2.15">
        <description>
          Scan Impact of using this radio to perform a scan.

          : 1: No impact,

          : 2: Reduced number of spatial streams,

          : 3: Time slicing impairment,

          : 4: Radio unavailable for &gt;= 2 seconds.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="4"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MinimumInterval" access="readOnly" version="2.15">
        <description>
          Minimum Scan Interval, the minimum interval in {{units}} between the
          start of two consecutive channel scans on this radio.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

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

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.ScanCapability.OpClassChannels.{i}."
        access="readOnly" numEntriesParameter="OpClassChannelsNumberOfEntries"
        minEntries="1" maxEntries="unbounded" version="2.15">
      <description>
        Table of the operating classes (selected from {{bibref|802.11ax|Table
        E-4}}) and channel numbers in each operating class that the radio is
        capable of scanning.
      </description>
      <uniqueKey functional="true">
        <parameter ref="OpClass"/>
      </uniqueKey>

      <parameter name="OpClass" access="readOnly" version="2.15">
        <description>
          The Operating Class per {{bibref|802.11ax|Table E-4}} For 2.4GHz and
          5GHz bands, only 20MHz Operating Classes are valid.

          Note that the operating class identifies the band and channel width.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ChannelList" access="readOnly">
        <description>
          {{list}} The channel numbers in this Operating Class which the radio
          is capable of scanning.
        </description>
        <syntax>
          <list/>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.CACCapability."
        access="readOnly" minEntries="1" maxEntries="1" version="2.15">
      <description>
        This object describes the Channel Availability Check (CAC) capabilities
        of a radio.
      </description>

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

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.CACCapability.CACMethod.{i}."
        access="readOnly" numEntriesParameter="CACMethodNumberOfEntries"
        minEntries="0" maxEntries="4" version="2.15">
      <description>
        List of Channel Availability Check (CAC) method information for each
        type of CAC that the radio can perform. Each type is defined by a
        method and time to complete. For each type, the classes and channels
        allowed are enumerated.
      </description>
      <uniqueKey functional="true">
        <parameter ref="Method"/>
      </uniqueKey>

      <parameter name="Method" access="readOnly">
        <description>
          CAC method supported;

          : 0: Continuous CAC,

          : 1: Continuous with dedicated radio,

          : 2: Multi-Input Multi-Output (MIMO) dimension reduced,

          : 3: Time sliced CAC.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="NumberOfSeconds" access="readOnly">
        <description>
          Number of {{units}} required to complete this method of CAC.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

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

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.CACCapability.CACMethod.{i}.OpClassChannels.{i}."
        access="readOnly" numEntriesParameter="OpClassChannelsNumberOfEntries"
        minEntries="1" maxEntries="unbounded" version="2.15">
      <description>
        Table of the operating classes (selected from {{bibref|802.11ax|Table
        E-4}}) and channel numbers in each operating class supported for this
        method of CAC.
      </description>
      <uniqueKey functional="true">
        <parameter ref="OpClass"/>
      </uniqueKey>

      <parameter name="OpClass" access="readOnly">
        <description>
          The Operating Class per {{bibref|802.11ax|Table E-4}}.

          Note that the operating class identifies the band and channel width.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ChannelList" access="readOnly">
        <description>
          {{list}} The channel numbers in this Operating Class that are
          supported for this method of CAC.
        </description>
        <syntax>
          <list/>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.Capabilities."
        access="readOnly" minEntries="1" maxEntries="1" version="2.13">
      <description>
        This object represents the capabilities of the radio which may be
        different from the current operational configuration.
      </description>

      <parameter name="HTCapabilities" access="readOnly">
        <description>
          Describes the HT capabilities of the radio as defined by the
          HTCapabilities TLV {{bibref|EasyMesh|Section 17.2.8}}.
        </description>
        <syntax>
          <base64>
            <size minLength="1" maxLength="1"/>
          </base64>
        </syntax>
      </parameter>

      <parameter name="VHTCapabilities" access="readOnly">
        <description>
          Describes the VHT capabilities of the radio as defined by the
          VHTCapabilities TLV {{bibref|EasyMesh|Section 17.2.9}}.
        </description>
        <syntax>
          <base64>
            <size minLength="2" maxLength="6"/>
          </base64>
        </syntax>
      </parameter>

      <parameter name="HECapabilities" access="readOnly" status="deleted">
        <description>
          Describes the HE capabilities of the radio as defined by the
          HECapabilities TLV {{bibref|EasyMesh|Section 17.2.10}}.

          {{deprecated|2.15|because it is superseded by {{object|WiFi6APRole}}
          and {{object|WiFi6bSTARole}}}}

          {{obsoleted|2.17}}

          {{deleted|2.18}}
        </description>
        <syntax>
          <base64>
            <size minLength="4" maxLength="14"/>
          </base64>
        </syntax>
      </parameter>

      <parameter name="MSCSCapability" access="readOnly" version="2.17">
        <description>
          This parameter indicates support for Mirrored Stream Classification
          Service (MSCS) and EasyMesh configuration of MSCS
          {{bibref|EasyMesh|AP Radio Advanced Capabilities TLV}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="SCSCapability" access="readOnly" version="2.17">
        <description>
          This parameter indicates support for Stream Classification Service
          (SCS) and EasyMesh {{bibref|EasyMesh}} configuration of SCS
          {{bibref|EasyMesh|AP Radio Advanced Capabilities TLV}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="QoSMapCapability" access="readOnly" version="2.17">
        <description>
          This parameter indicates support for QoS Map {{bibref|EasyMesh|AP
          Radio Advanced Capabilities TLV}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="DSCPPolicyCapability" access="readOnly" version="2.17">
        <description>
          This parameter indicates support for DSCP Mapping Table TLV based
          DSCP-to-UP mapping and EasyMesh distribution of QoS Map elements to
          associated STAs {{bibref|EasyMesh|AP Radio Advanced Capabilities
          TLV}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="SCSTrafficDescriptionCapability" access="readOnly"
          version="2.17">
        <description>
          This parameter indicates support for QoS Management Stream
          Classification Service (SCS) Traffic Description and EasyMesh
          configuration of and/or extensions to SCS using traffic descriptions
          {{bibref|EasyMesh|AP Radio Advanced Capabilities TLV}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

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

      <parameter name="AKMFrontHaulNumberOfEntries" access="readOnly"
          version="2.15">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

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

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.Capabilities.WiFi6APRole."
        access="readOnly" minEntries="1" maxEntries="1" version="2.15">
      <description>
        Describes the Wi-Fi 6 capabilities for the AP role.
      </description>

      <parameter name="HE160" access="readOnly">
        <description>
          Indicates support for High Efficiency (HE) 160 MHz.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="HE8080" access="readOnly">
        <description>
          Indicates support for HE 80+80 MHz.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MCSNSS" access="readOnly">
        <description>
          Supported High Efficiency-Modulation and Coding Scheme (HE-MCS) and
          Number of Spatial Streams (NSS) Set field as defined in
          {{bibref|802.11ax|Figure 9-788d}} Supported HE-MCS And NSS Set field
          format. HE-MCS And NSS Set field for 160MHz is present if 160MHz is
          supported. HE-MCS And NSS Set field for 80+80MHz is present if
          80+80MHz is supported.
        </description>
        <syntax>
          <base64>
            <size minLength="4" maxLength="12"/>
          </base64>
        </syntax>
      </parameter>

      <parameter name="SUBeamformer" access="readOnly">
        <description>
          Indicates support for Single-User (SU) Beamformer.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="SUBeamformee" access="readOnly">
        <description>
          Indicates support for SU Beamformee.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MUBeamformer" access="readOnly">
        <description>
          Indicates support for Multi-User (MU) Beamformer.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Beamformee80orLess" access="readOnly">
        <description>
          Indicates support for Beamformee Space-Time Stream (STS) ≤ 80 MHz.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BeamformeeAbove80" access="readOnly">
        <description>
          Indicates support for Beamformee STS &gt; 80 MHz.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="ULMUMIMO" access="readOnly">
        <description>
          Indicates support for Uplink (UL) Multi-User Multiple Input, Multiple
          Output (MU-MIMO).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="ULOFDMA" access="readOnly">
        <description>
          Indicates support for UL Orthogonal Frequency Division Multiplexing
          (OFDMA).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="DLOFDMA" access="readOnly" version="2.17">
        <description>
          Indicates support for Downlink (DL) Orthogonal Frequency Division
          Multiplexing (OFDMA).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MaxDLMUMIMO" access="readOnly">
        <description>
          Max number of users supported per DL MU-MIMO Transmitter (TX) in the
          BSS role.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MaxULMUMIMO" access="readOnly">
        <description>
          Max number of users supported per UL MU-MIMO Receiver (RX) in the BSS
          role.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MaxDLOFDMA" access="readOnly">
        <description>
          Max number of users supported per Downlink (DL) OFDMA TX in the BSS
          role.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MaxULOFDMA" access="readOnly">
        <description>
          Max number of users supported per UL OFDMA RX in the BSS role.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RTS" access="readOnly">
        <description>
          Indicates support for Request To Send (RTS).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MURTS" access="readOnly">
        <description>
          Indicates support for MU RTS.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MultiBSSID" access="readOnly">
        <description>
          Indicates support for Multi-Basic Service Set Identifier (BSSID).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MUEDCA" access="readOnly">
        <description>
          Indicates support for MU Enhanced distributed channel access (EDCA).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="TWTRequestor" access="readOnly">
        <description>
          Indicates support for Target Wake Time (TWT) Requestor.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="TWTResponder" access="readOnly">
        <description>
          Indicates support for TWT Responder.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="SpatialReuse" access="readOnly">
        <description>
          Indicates support for EasyMesh configuration and reporting of BSS
          Color and Spatial Reuse.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="AnticipatedChannelUsage" access="readOnly">
        <description>
          Indicates support for Anticipated Channel Usage (ACU) reporting.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.Capabilities.WiFi6bSTARole."
        access="readOnly" minEntries="1" maxEntries="1" version="2.15">
      <description>
        Describes the Wi-Fi 6 capabilities for the backhaul Station (bSTA)
        role.
      </description>

      <parameter name="HE160" access="readOnly">
        <description>
          Indicates support for High Efficiency (HE) 160 MHz.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="HE8080" access="readOnly">
        <description>
          Indicates support for HE 80+80 MHz.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MCSNSS" access="readOnly">
        <description>
          Supported High Efficiency-Modulation and Coding Scheme (HE-MCS) and
          Number of Spatial Streams (NSS) Set field as defined in
          {{bibref|802.11ax|Figure 9-788d}} Supported HE-MCS And NSS Set field
          format. HE-MCS And NSS Set field for 160MHz is present if 160MHz is
          supported. HE-MCS And NSS Set field for 80+80MHz is present if
          80+80MHz is supported.
        </description>
        <syntax>
          <base64>
            <size minLength="4" maxLength="12"/>
          </base64>
        </syntax>
      </parameter>

      <parameter name="SUBeamformer" access="readOnly">
        <description>
          Indicates support for Single-User (SU) Beamformer.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="SUBeamformee" access="readOnly">
        <description>
          Indicates support for SU Beamformee.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MUBeamformer" access="readOnly">
        <description>
          Indicates support for Multi-User (MU) Beamformer.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Beamformee80orLess" access="readOnly">
        <description>
          Indicates support for Beamformee Space-Time Stream (STS) ≤ 80 MHz.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BeamformeeAbove80" access="readOnly">
        <description>
          Indicates support for Beamformee STS &gt; 80 MHz.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="ULMUMIMO" access="readOnly">
        <description>
          Indicates support for Uplink (UL) Multi-User Multiple Input, Multiple
          Output (MU-MIMO).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="ULOFDMA" access="readOnly">
        <description>
          Indicates support for UL Orthogonal Frequency Division Multiplexing
          (OFDMA).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="DLOFDMA" access="readOnly" version="2.17">
        <description>
          Indicates support for Downlink (DL) Orthogonal Frequency Division
          Multiplexing (OFDMA).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MaxDLMUMIMO" access="readOnly">
        <description>
          Max number of users supported per DL MU-MIMO Transmitter (TX) in the
          BSS role.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MaxULMUMIMO" access="readOnly">
        <description>
          Max number of users supported per UL MU-MIMO Receiver (RX) in the BSS
          role.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MaxDLOFDMA" access="readOnly">
        <description>
          Max number of users supported per Downlink (DL) OFDMA TX in the BSS
          role.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MaxULOFDMA" access="readOnly">
        <description>
          Max number of users supported per UL OFDMA RX in the BSS role.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RTS" access="readOnly">
        <description>
          Indicates support for Request To Send (RTS).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MURTS" access="readOnly">
        <description>
          Indicates support for MU RTS.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MultiBSSID" access="readOnly">
        <description>
          Indicates support for Multi-Basic Service Set Identifier (BSSID).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MUEDCA" access="readOnly">
        <description>
          Indicates support for MU Enhanced distributed channel access (EDCA).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="TWTRequestor" access="readOnly">
        <description>
          Indicates support for Target Wake Time (TWT) Requestor.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="TWTResponder" access="readOnly">
        <description>
          Indicates support for TWT Responder.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="SpatialReuse" access="readOnly">
        <description>
          Indicates support for EasyMesh configuration and reporting of BSS
          Color and Spatial Reuse.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="AnticipatedChannelUsage" access="readOnly">
        <description>
          Indicates support for Anticipated Channel Usage (ACU) reporting.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.Capabilities.WiFi7APRole."
        access="readOnly" minEntries="1" maxEntries="1" version="2.17">
      <description>
        This object describes the Wi-Fi 7 capabilities for the AP role
        including Multi-Link Operation (MLO) capabilities. {{bibref|EasyMesh}}
        Source: Wi-Fi 7 Agent Capabilities TLV.
      </description>

      <parameter name="EMLMRSupport" access="readOnly">
        <description>
          Indicates if the Enhanced Multi-Link Multi-Radio (EMLMR) operation is
          supported.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="EMLSRSupport" access="readOnly">
        <description>
          Indicates if Enhanced Multi-Link Single-Radio (EMLSR) operation is
          supported.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="STRSupport" access="readOnly">
        <description>
          Indicates if Simultaneous Transmit and Receive (STR) operation is
          supported.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="NSTRSupport" access="readOnly">
        <description>
          Indicates if Non-Simultaneous Transmit and Receive (NSTR) operation
          is supported.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="TIDLinkMapNegotiation" access="readOnly">
        <description>
          Indicates if Traffic Identifier (TID) to Link Mapping Negotiation is
          supported.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

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

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

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

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

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.Capabilities.WiFi7APRole.EMLMRFreqSeparation.{i}."
        access="readOnly"
        numEntriesParameter="EMLMRFreqSeparationNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.17">
      <description>
        This object describes the required frequency separation from the
        specified radio {{param|RUID}} for MLO Enhanced Multi-Link Multi-Radio
        (EMLMR) operation. {{bibref|EasyMesh}} Source: Wi-Fi 7 Agent
        Capabilities TLV.
      </description>
      <uniqueKey functional="true">
        <parameter ref="RUID"/>
      </uniqueKey>

      <parameter name="RUID" access="readOnly">
        <description>
          The Radio unique identifier (RUID) of another radio to which the
          specified frequency separation gap applies.
        </description>
        <syntax>
          <base64/>
        </syntax>
      </parameter>

      <parameter name="FreqSeparation" access="readOnly">
        <description>
          Frequency separation to the specified radio for the particular MLO
          operation mode. A value of 0 indicates that no frequency separation
          information is provided. Set to a nonzero value to indicate the
          required frequency gap is ({{param}} - 1) x {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="80 MHz"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.Capabilities.WiFi7APRole.EMLSRFreqSeparation.{i}."
        access="readOnly"
        numEntriesParameter="EMLSRFreqSeparationNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.17">
      <description>
        This object describes the required frequency separation from the
        specified radio {{param|RUID}} for MLO Enhanced Multi-Link Single-Radio
        (EMLSR) operation. {{bibref|EasyMesh}} Source: Wi-Fi 7 Agent
        Capabilities TLV.
      </description>
      <uniqueKey functional="true">
        <parameter ref="RUID"/>
      </uniqueKey>

      <parameter name="RUID" access="readOnly">
        <description>
          The Radio unique identifier (RUID) of another radio to which the
          specified frequency separation gap applies.
        </description>
        <syntax>
          <base64/>
        </syntax>
      </parameter>

      <parameter name="FreqSeparation" access="readOnly">
        <description>
          Frequency separation to the specified radio for the particular MLO
          operation mode. A value of 0 indicates that no frequency separation
          information is provided. Set to a nonzero value to indicate the
          required frequency gap is ({{param}} - 1) x {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="80 MHz"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.Capabilities.WiFi7APRole.STRFreqSeparation.{i}."
        access="readOnly"
        numEntriesParameter="STRFreqSeparationNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.17">
      <description>
        This object describes the required frequency separation from the
        specified radio {{param|RUID}} for MLO Simultaneous Transmit and
        Receive (STR) operation. {{bibref|EasyMesh}} Source: Wi-Fi 7 Agent
        Capabilities TLV.
      </description>
      <uniqueKey functional="true">
        <parameter ref="RUID"/>
      </uniqueKey>

      <parameter name="RUID" access="readOnly">
        <description>
          The Radio unique identifier (RUID) of another radio to which the
          specified frequency separation gap applies.
        </description>
        <syntax>
          <base64/>
        </syntax>
      </parameter>

      <parameter name="FreqSeparation" access="readOnly">
        <description>
          Frequency separation to the specified radio for the particular MLO
          operation mode. A value of 0 indicates that no frequency separation
          information is provided. Set to a nonzero value to indicate the
          required frequency gap is ({{param}} - 1) x {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="80 MHz"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.Capabilities.WiFi7APRole.NSTRFreqSeparation.{i}."
        access="readOnly"
        numEntriesParameter="NSTRFreqSeparationNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.17">
      <description>
        This object describes the required frequency separation from the
        specified radio {{param|RUID}} for MLO Non-Simultaneous Transmit and
        Receive (NSTR) operation. {{bibref|EasyMesh}} Source: Wi-Fi 7 Agent
        Capabilities TLV.
      </description>
      <uniqueKey functional="true">
        <parameter ref="RUID"/>
      </uniqueKey>

      <parameter name="RUID" access="readOnly">
        <description>
          The Radio unique identifier (RUID) of another radio to which the
          specified frequency separation gap applies.
        </description>
        <syntax>
          <base64/>
        </syntax>
      </parameter>

      <parameter name="FreqSeparation" access="readOnly">
        <description>
          Frequency separation to the specified radio for the particular MLO
          operation mode. A value of 0 indicates that no frequency separation
          information is provided. Set to a nonzero value to indicate the
          required frequency gap is ({{param}} - 1) x {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="80 MHz"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.Capabilities.WiFi7bSTARole."
        access="readOnly" minEntries="1" maxEntries="1" version="2.17">
      <description>
        This object describes the Wi-Fi 7 capabilities for the backhaul Station
        (bSTA) role including Multi-Link Operation (MLO) capabilities.
        {{bibref|EasyMesh}} Source: Wi-Fi 7 Agent Capabilities TLV.
      </description>

      <parameter name="EMLMRSupport" access="readOnly">
        <description>
          Indicates if the Enhanced Multi-Link Multi-Radio (EMLMR) operation is
          supported.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="EMLSRSupport" access="readOnly">
        <description>
          Indicates if Enhanced Multi-Link Single-Radio (EMLSR) operation is
          supported.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="STRSupport" access="readOnly">
        <description>
          Indicates if Simultaneous Transmit and Receive (STR) operation is
          supported.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="NSTRSupport" access="readOnly">
        <description>
          Indicates if Non-Simultaneous Transmit and Receive (NSTR) operation
          is supported.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="TIDLinkMapNegotiation" access="readOnly">
        <description>
          Indicates if Traffic Identifier (TID) to Link Mapping Negotiation is
          supported.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

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

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

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

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

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.Capabilities.WiFi7bSTARole.EMLMRFreqSeparation.{i}."
        access="readOnly"
        numEntriesParameter="EMLMRFreqSeparationNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.17">
      <description>
        This object describes the required frequency separation from the
        specified radio {{param|RUID}} for MLO Enhanced Multi-Link Multi-Radio
        (EMLMR) operation. {{bibref|EasyMesh}} Source: Wi-Fi 7 Agent
        Capabilities TLV.
      </description>
      <uniqueKey functional="true">
        <parameter ref="RUID"/>
      </uniqueKey>

      <parameter name="RUID" access="readOnly">
        <description>
          The Radio unique identifier (RUID) of another radio to which the
          specified frequency separation gap applies.
        </description>
        <syntax>
          <base64/>
        </syntax>
      </parameter>

      <parameter name="FreqSeparation" access="readOnly">
        <description>
          Frequency separation to the specified radio for the particular MLO
          operation mode. A value of 0 indicates that no frequency separation
          information is provided. Set to a nonzero value to indicate the
          required frequency gap is ({{param}} - 1) x {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="80 MHz"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.Capabilities.WiFi7bSTARole.EMLSRFreqSeparation.{i}."
        access="readOnly"
        numEntriesParameter="EMLSRFreqSeparationNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.17">
      <description>
        This object describes the required frequency separation from the
        specified radio {{param|RUID}} for MLO Enhanced Multi-Link Single-Radio
        (EMLSR) operation. {{bibref|EasyMesh}} Source: Wi-Fi 7 Agent
        Capabilities TLV.
      </description>
      <uniqueKey functional="true">
        <parameter ref="RUID"/>
      </uniqueKey>

      <parameter name="RUID" access="readOnly">
        <description>
          The Radio unique identifier (RUID) of another radio to which the
          specified frequency separation gap applies.
        </description>
        <syntax>
          <base64/>
        </syntax>
      </parameter>

      <parameter name="FreqSeparation" access="readOnly">
        <description>
          Frequency separation to the specified radio for the particular MLO
          operation mode. A value of 0 indicates that no frequency separation
          information is provided. Set to a nonzero value to indicate the
          required frequency gap is ({{param}} - 1) x {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="80 MHz"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.Capabilities.WiFi7bSTARole.STRFreqSeparation.{i}."
        access="readOnly"
        numEntriesParameter="STRFreqSeparationNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.17">
      <description>
        This object describes the required frequency separation from the
        specified radio {{param|RUID}} for MLO Simultaneous Transmit and
        Receive (STR) operation. {{bibref|EasyMesh}} Source: Wi-Fi 7 Agent
        Capabilities TLV.
      </description>
      <uniqueKey functional="true">
        <parameter ref="RUID"/>
      </uniqueKey>

      <parameter name="RUID" access="readOnly">
        <description>
          The Radio unique identifier (RUID) of another radio to which the
          specified frequency separation gap applies.
        </description>
        <syntax>
          <base64/>
        </syntax>
      </parameter>

      <parameter name="FreqSeparation" access="readOnly">
        <description>
          Frequency separation to the specified radio for the particular MLO
          operation mode. A value of 0 indicates that no frequency separation
          information is provided. Set to a nonzero value to indicate the
          required frequency gap is ({{param}} - 1) x {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="80 MHz"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.Capabilities.WiFi7bSTARole.NSTRFreqSeparation.{i}."
        access="readOnly"
        numEntriesParameter="NSTRFreqSeparationNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.17">
      <description>
        This object describes the required frequency separation from the
        specified radio {{param|RUID}} for MLO Non-Simultaneous Transmit and
        Receive (NSTR) operation. {{bibref|EasyMesh}} Source: Wi-Fi 7 Agent
        Capabilities TLV.
      </description>
      <uniqueKey functional="true">
        <parameter ref="RUID"/>
      </uniqueKey>

      <parameter name="RUID" access="readOnly">
        <description>
          The Radio unique identifier (RUID) of another radio to which the
          specified frequency separation gap applies.
        </description>
        <syntax>
          <base64/>
        </syntax>
      </parameter>

      <parameter name="FreqSeparation" access="readOnly">
        <description>
          Frequency separation to the specified radio for the particular MLO
          operation mode. A value of 0 indicates that no frequency separation
          information is provided. Set to a nonzero value to indicate the
          required frequency gap is ({{param}} - 1) x {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="80 MHz"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.Capabilities.AKMFrontHaul.{i}."
        access="readOnly" numEntriesParameter="AKMFrontHaulNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.15">
      <description>
        Authentication and Key Management (AKM) Suite (security mode)
        capabilities for the fronthaul BSS.
      </description>
      <uniqueKey functional="true">
        <parameter ref="OUI"/>
      </uniqueKey>

      <parameter name="OUI" access="readOnly" version="2.15">
        <description>
          Any Organizationally Unique Identifier (OUI) value specified in
          {{bibref|802.11-2020|Table 9-151}}).
        </description>
        <syntax>
          <base64/>
        </syntax>
      </parameter>

      <parameter name="Type" access="readOnly">
        <description>
          Any suite type value specified in {{bibref|802.11-2020|Table 9-151}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.Capabilities.AKMBackhaul.{i}."
        access="readOnly" numEntriesParameter="AKMBackhaulNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.15">
      <description>
        Authentication and Key Management (AKM) Suite (security mode)
        capabilities for the backhaul BSS.
      </description>
      <uniqueKey functional="true">
        <parameter ref="OUI"/>
      </uniqueKey>

      <parameter name="OUI" access="readOnly" version="2.15">
        <description>
          Any Organizationally Unique Identifier (OUI) value specified in
          {{bibref|802.11-2020|Table 9-151}}).
        </description>
        <syntax>
          <base64/>
        </syntax>
      </parameter>

      <parameter name="Type" access="readOnly">
        <description>
          Any suite type value specified in {{bibref|802.11-2020|Table 9-151}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.Capabilities.CapableOperatingClassProfile.{i}."
        access="readOnly"
        numEntriesParameter="CapableOperatingClassProfileNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.13">
      <description>
        Describes one of the possible Operating Classes supported by this
        Radio.
      </description>
      <uniqueKey functional="true">
        <parameter ref="Class"/>
      </uniqueKey>

      <parameter name="Class" access="readOnly">
        <description>
          The Operating Class per {{bibref|802.11ax|Table E-4}} that this radio
          is capable of operating on.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MaxTxPower" access="readOnly">
        <description>
          Maximum Transmit Power EIRP that this radio is capable of
          transmitting in the current regulatory domain for the Operating
          Class.

          Represented as 2's complement signed integer in units of decibels
          relative to 1 mW ({{units}}).
        </description>
        <syntax>
          <int>
            <range minInclusive="-127" maxInclusive="127"/>
            <units value="dBm"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="NonOperable" access="readOnly">
        <description>
          {{list}} The channel numbers which are statically non-operable in the
          Operating Class (i.e. the Radio is never able to operate on these
          channels).

          Other channels from this Operating Class which are not listed here
          are supported for the Radio.
        </description>
        <syntax>
          <list/>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="NumberOfNonOperChan" access="readOnly">
        <description>
          The number of non-operable channels contained in
          {{param|NonOperable}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.Capabilities.HaLowCapabilities."
        access="readOnly" minEntries="1" maxEntries="1" version="2.19">
      <description>
        This object describes the capabilities of the Wi-Fi HaLow radio, most
        of which can be extracted from the Sub 1 GHz (S1G) capabilities
        Information Element (IE) in {{bibref|802.11-2020|Section 9.4.2.200.2}}.
      </description>

      <parameter name="BW4MHz" access="readOnly">
        <description>
          Indicates support for 4 MHz operation.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BW8MHz" access="readOnly">
        <description>
          Indicates support for 8 MHz operation.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BW16MHz" access="readOnly">
        <description>
          Indicates support for 16 MHz operation.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="S1GLong" access="readOnly">
        <description>
          Indicates support for the reception of S1G_LONG Physical layer
          Protocol Data Units (PPDUs).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BW1MHzShortGI" access="readOnly">
        <description>
          Indicates support for 1 MHz short Guard Interval (GI).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BW2MHzShortGI" access="readOnly">
        <description>
          Indicates support for 2 MHz short GI.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BW4MHzShortGI" access="readOnly">
        <description>
          Indicates support for 4 MHz short GI.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BW8MHzShortGI" access="readOnly">
        <description>
          Indicates support for 8 MHz short GI.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BW16MHzShortGI" access="readOnly">
        <description>
          Indicates support for 16 MHz short GI.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="AMSDU" access="readOnly">
        <description>
          Indicates support of Aggregated MAC Service Data Units (AMSDU).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="AMPDU" access="readOnly">
        <description>
          Indicates support of Aggregated MAC Protocol Data Units (AMPDU).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="FlowControl" access="readOnly">
        <description>
          Indicates support for Flow Control {{bibref|802.11-2020|Section
          10.61}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="CentralizedAuthenticationControl" access="readOnly">
        <description>
          Indicates support for Centralized Authentication Control
          {{bibref|802.11-2020|Section 11.3.9.2}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="DistributedAuthenticationControl" access="readOnly">
        <description>
          Indicates support for Distributed Authentication Control (DAC)
          {{bibref|802.11-2020|Section 11.3.9.3}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MaxMPDULen" access="readOnly">
        <description>
          Indicates the maximum MAC Protocol Data Unit (MPDU) length in octets.
          {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="3895"/>
            <enumeration value="7991"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="NonTIMMode" access="readOnly">
        <description>
          Indicates support of non-Traffic Indication Map (non-TIM) operation
          {{bibref|802.11-2020|Section 10.48}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="DynamicAID" access="readOnly">
        <description>
          Indicates support of Dynamic Association ID (AID) operation
          {{bibref|802.11-2020|Section 10.20}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="GroupAID" access="readOnly">
        <description>
          Indicates support of Group Association ID (AID)
          {{bibref|802.11-2020|Section 10.55}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BATSupport" access="readOnly">
        <description>
          Indicates support for the use of the Block Acknowledgment TWT (BAT)
          frame in Block Agreements {{bibref|802.11-2020|Section 9.8.4.3}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="RAWOperation" access="readOnly">
        <description>
          Indicates support for Restricted access window (RAW) operation
          {{bibref|802.11-2020|Section 10.23.5}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="PageSlicing" access="readOnly">
        <description>
          Indicates support for Page Slicing Operation
          {{bibref|802.11-2020|Section 10.51}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="PV1Frame" access="readOnly">
        <description>
          Indicates support for Protocol Version 1 (PV1) frames
          {{bibref|802.11-2020|Section 9.8}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="TxMCSNSS" access="readOnly">
        <description>
          Supported Tx S1G-MCS Map subfield and Coding Scheme (S1G-MCS) and
          Number of Spatial Streams (NSS) Set field as defined in
          {{bibref|802.11-2020|Figure 9-694}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RxMCSNSS" access="readOnly">
        <description>
          Supported Rx S1G-MCS Map subfield and Coding Scheme (S1G-MCS) and
          Number of Spatial Streams (NSS) Set field as defined in
          {{bibref|802.11-2020|Figure 9-694}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SUBeamformer" access="readOnly">
        <description>
          Indicates support for Single-User (SU) Beamformer
          {{bibref|802.11-2020|10.36.5 VHT sounding protocol}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="SUBeamformee" access="readOnly">
        <description>
          Indicates support for Single-User (SU) Beamformee
          {{bibref|802.11-2020|10.36.5 VHT sounding protocol}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MUBeamformer" access="readOnly">
        <description>
          Indicates support for Multi-User (MU) Beamformer
          {{bibref|802.11-2020|10.36.5 VHT sounding protocol}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MUBeamformee" access="readOnly">
        <description>
          Indicates support for Multi-User (MU) Beamformee
          {{bibref|802.11-2020|10.36.5 VHT sounding protocol}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="TravelingPilot" access="readOnly">
        <description>
          Indicates support for or the reception of PPDUs with traveling pilots
          {{bibref|802.11-2020|10.56 Traveling pilot operation}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="TWTGrouping" access="readOnly">
        <description>
          Indicates support for Target Wake Time (TWT) Grouping
          {{bibref|802.11-2020|10.47.5 TWT grouping}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="TWTRequestor" access="readOnly">
        <description>
          Indicates support for Target Wake Time (TWT) Requestor
          {{bibref|802.11-2020|10.47 Target wake time (TWT)}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="TWTResponder" access="readOnly">
        <description>
          Indicates support for Target Wake Time (TWT) TWTResponder
          {{bibref|802.11-2020|10.47 Target wake time (TWT)}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="AcceptSensorDevices" access="readOnly">
        <description>
          Indicates if this Wi-Fi HaLow radio accepts sensor associated devices
          (STAs).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="AcceptNonSensorDevices" access="readOnly">
        <description>
          Indicates if this Wi-Fi HaLow radio accepts non-sensor associated
          devices (STAs).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.CurrentOperatingClassProfile.{i}."
        access="readOnly"
        numEntriesParameter="CurrentOperatingClassProfileNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.13">
      <description>
        Describes one of the current Operating Classes in use by this Radio.
        One Operating Class is indicated for each current Operating Channel
        Bandwidth.

        The Channel indicated for the 20 MHz Operating Class is equal to the
        current primary channel.
      </description>
      <uniqueKey functional="true">
        <parameter ref="Class"/>
      </uniqueKey>

      <parameter name="Class" access="readOnly">
        <description>
          The Operating Class per {{bibref|802.11ax|Table E-4}} that this radio
          is currently operating on.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Channel" access="readOnly">
        <description>
          This Channel number in the Operating Class that this Radio is
          currently operating on.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TxPower" access="readOnly">
        <description>
          Nominal Transmit Power EIRP that this radio is currently using for
          the current Channel in the Opeating Class.

          Represented as 2's complement signed integer in units of decibels
          relative to 1 mW ({{units}}).
        </description>
        <syntax>
          <int>
            <range minInclusive="-127" maxInclusive="127"/>
            <units value="dBm"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="TransmitPowerLimit" access="readOnly" version="2.15">
        <description>
          This is the upper limit on nominal transmit Equivalent Isotropically
          Radiated Power (EIRP) that this radio is allowed to use for the
          current {{param|Class}}. In units of decibels relative to 1 mW
          {{units}}.
        </description>
        <syntax>
          <int>
            <range minInclusive="-128" maxInclusive="127"/>
            <units value="dBm"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="TimeStamp" access="readOnly">
        <description>
          The time this group was collected. Formatted with the date-and-time
          string format as defined in {{bibref|RFC3339|Section 3}}.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.DisAllowedOpClassChannels.{i}."
        access="readWrite"
        numEntriesParameter="DisAllowedOpClassChannelsNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded"
        version="2.15">
      <description>
        The operating classes, and list of channels for each operating class,
        which are not allowed to be used on this radio.
      </description>
      <uniqueKey functional="true">
        <parameter ref="OpClass"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables disallowed operating classes and channels.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="OpClass" access="readWrite">
        <description>
          The Operating Class per {{bibref|802.11ax|Table E-4}}.

          Note that the operating class identifies the band and channel width.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ChannelList" access="readWrite">
        <description>
          {{list}} The channel numbers in this Operating Class that are not
          allowed to be used on this radio.
        </description>
        <syntax>
          <list/>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.OpClassPreference.{i}."
        access="readOnly"
        numEntriesParameter="OpClassPreferenceNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.19">
      <description>
        Values represent Channel Preference TLV values in the most recent
        Channel Preference Report message {{bibref|EasyMesh|17.2.13}}.

        Each entry in this table describes one of the operating classes for
        which Channel Preference has been reported.

        A Preference score of 15 must be inferred for all channel/operating
        classes not present in this table, unless that channel/operating class
        has been reported as statically non-operable in the most recent AP
        Radio Basic Capabilities TLV {{bibref|EasyMesh|17.2.7}}.
      </description>
      <uniqueKey functional="true">
        <parameter ref="OpClass"/>
        <parameter ref="Preference"/>
      </uniqueKey>

      <parameter name="OpClass" access="readOnly">
        <description>
          The operating class {{bibref|802.11ax|Table E-4}}. Note that the
          operating class identifies the band and channel width.

          Values represent the OpClass field of the Channel Preference TLV in
          the most recent Channel Preference Report message
          {{bibref|EasyMesh|17.2.13}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ChannelList" access="readOnly">
        <description>
          The channel numbers in this operating class.

          {{list}} Values represent the Channel List field of the Channel
          Preference TLV in the most recent Channel Preference Report message
          {{bibref|EasyMesh|17.2.13}}.
        </description>
        <syntax>
          <list/>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Preference" access="readOnly">
        <description>
          The reported preference for this {{param|OpClass}} and
          {{param|ChannelList}}, as defined in {{bibref|EasyMesh|17.2.13}}.

          Values represent the Preference field of the Channel Preference TLV
          in the most recent Channel Preference Report message
          {{bibref|EasyMesh|17.2.13}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="15"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ReasonCode" access="readOnly">
        <description>
          Reason Code. Indicates the reason for the {{param|Preference}}, as
          defined in {{bibref|EasyMesh|17.2.13}}.

          Values represent the Reason_Code field of the Channel Preference TLV
          in the most recent Channel Preference Report message
          {{bibref|EasyMesh|17.2.13}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="15"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.SpatialReuse."
        access="readOnly" minEntries="1" maxEntries="1" version="2.15">
      <description>
        The spatial reuse configuration of this radio. Applies only to Wi-Fi 6
        {{bibref|802.11ax}} and possibly later generations of radios.

        Acronyms: Spatial Reuse Group (SRG), Overlapping Basic Service Set
        (OBSS), Preamble Detection (PD).
      </description>

      <parameter name="PartialBSSColor" access="readOnly">
        <description>
          The value of the Partial Basic Service Set (BSS) Color subfield of
          the HEOperations.BSSColorInformation field being transmitted by BSSs
          operating on this radio. (EasyMesh TLV Field: Partial BSS Color)
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="BSSColor" access="readOnly">
        <description>
          The value of the BSS Color subfield of the
          HEOperations.BSSColorInformation field being transmitted by BSSs
          operating on this radio. (EasyMesh TLV Field: BSS Color)
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="HESIGASpatialReuseValue15Allowed" access="readOnly">
        <description>
          Indicates if the Agent is allowed to set HESIGA.SpatialReuse field to
          value 15 (PSR_AND_NON_SRG_OBSS_PD_PROHIBITED) in HE PPDU
          transmissions of this radio. (EasyMesh TLV Field:
          HESIGA_Spatial_reuse_value15_allowed)

          : {{true}}: allowed;

          : {{false}}: disallowed.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="SRGInformationValid" access="readOnly">
        <description>
          This field indicates whether the SRG Information fields (SRG OBSS PD
          Min Offset, SRG OBSS PD Max Offset, SRG BSS Color Bitmap and SRG
          Partial BSSID Bitmap) in this command are valid. (EasyMesh TLV Field:
          SRG Information Valid)

          : {{true}}: SRG Information fields valid;

          : {{false}}: SRG Information fields not valid.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="NonSRGOffsetValid" access="readOnly">
        <description>
          This field indicates whether the Non-SRG OBSSPD Max Offset field in
          this command is valid. (EasyMesh TLV Field: Non-SRG Offset Valid)

          : {{true}}: Non-SRG Max Offset field valid;

          : {{false}}: Non-SRG Max Offset field not valid.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="PSRDisallowed" access="readOnly">
        <description>
          Indicates if the Agent is disallowed to use Parameterized Spatial
          Reuse (PSR)-based Spatial Reuse for transmissions by the specified
          radio. (EasyMesh TLV Field: PSR Disallowed)

          : {{true}}: PSR disallowed;

          : {{false}}: PSR allowed.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="NonSRGOBSSPDMaxOffset" access="readOnly">
        <description>
          The value of dot11NonSRGAPOBSSPDMaxOffset (i.e the Non-SRG OBSSPD Max
          Offset value being used to control the transmissions of the specified
          radio). (EasyMesh TLV Field: Non-SRG OBSSPD Max Offset)

          This field is valid only if {{param|NonSRGOffsetValid}} is {{true}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SRGOBSSPDMinOffset" access="readOnly">
        <description>
          The value of dot11SRGAPOBSSPDMinOffset (i.e. the SRG OBSSPD Min
          Offset value being used to control the transmissions of the specified
          radio). (EasyMesh TLV Field: SRG OBSSPD Min Offset)

          This field is valid only if {{param|SRGInformationValid}} is
          {{true}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SRGOBSSPDMaxOffset" access="readOnly">
        <description>
          The value of dot11SRGAPOBSSPDMaxOffset (i.e. the SRG OBSSPD Max
          Offset value being used to control the transmissions of the specified
          radio). (EasyMesh TLV Field: SRG OBSSPD Max Offset)

          This field is valid only if {{param|SRGInformationValid}} is
          {{true}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SRGBSSColorBitmap" access="readOnly">
        <description>
          The value of dot11SRGAPBSSColorBitmap (i.e. the SRG BSS Color Bitmap
          being used to control the tranmissions of the specified radio).
          (EasyMesh TLV Field: SRG BSS Color Bitmap)

          This field is valid only if {{param|SRGInformationValid}} is
          {{true}}.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="8" maxLength="8"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="SRGPartialBSSIDBitmap" access="readOnly">
        <description>
          The value of dot11SRGAPBSSIDBitmap (i.e. the SRG Partial BSSID Color
          Bitmap being used to control the transmissions of the specified
          radio). (EasyMesh TLV Field: SRG Partial BSSID Bitmap)

          This field is valid only if {{param|SRGInformationValid}} is
          {{true}}.

          Note: See rules in section 26.10.2.3 of [17] regarding the members of
          an SRG.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="8" maxLength="8"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="NeighborBSSColorInUseBitmap" access="readOnly">
        <description>
          Bitmap of BSS colors of Overlapping BSSs (OBSSs) that the
          High-Efficiency (HE) AP has identified by itself or via the
          autonomous BSS Color collision reports received from associated
          non-AP HE STAs.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="8" maxLength="8"/>
          </hexBinary>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}."
        access="readOnly" numEntriesParameter="BSSNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.13">
      <description>
        A single logical BSS operating on this radio.
      </description>
      <uniqueKey functional="true">
        <parameter ref="BSSID"/>
      </uniqueKey>

      <parameter name="BSSID" access="readOnly">
        <description>
          The MAC Address of the logical BSS (BSSID).

          If the instance of this {{object}} is the same as
          {{object|Device.WiFi.SSID.{i}.}}, then this parameter is the same as
          {{param|Device.WiFi.SSID.{i}.BSSID}}.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="SSID" access="readOnly">
        <description>
          The SSID in use for this BSS.

          If the instance of this {{object}} is the same as
          {{object|Device.WiFi.SSID.{i}.}}, then this parameter is the same as
          {{param|Device.WiFi.SSID.{i}.SSID}}.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="Enabled" access="readOnly">
        <description>
          Whether the BSSID is currently enabled (beaconing frames are being
          sent) or disabled.

          If the instance of this {{object}} is the same as
          {{object|Device.WiFi.SSID.{i}.}}, then this parameter is the same as
          {{param|Device.WiFi.SSID.{i}.Enable}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="LastChange" access="readOnly">
        <description>
          Time in {{units}} since the last change to the {{param|Enabled}}
          value.

          If the instance of this {{object}} is the same as
          {{object|Device.WiFi.SSID.{i}.}}, then this parameter is the same as
          {{param|Device.WiFi.SSID.{i}.LastChange}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TimeStamp" access="readOnly">
        <description>
          The time this group was collected. Formatted with the date-and-time
          string format as defined in {{bibref|RFC3339|Section 3}}.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="UnicastBytesSent" access="readOnly">
        <description>
          Access Point (BSS) wide statistics for total unicast bytes
          transmitted.

          This counter does not include Multi-Link Device (MLD) traffic through
          this BSS.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="UnicastBytesReceived" access="readOnly">
        <description>
          Access Point (BSS) wide statistics for total unicast bytes received.

          This counter does not include MLD traffic through this BSS.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="MulticastBytesSent" access="readOnly">
        <description>
          Access Point (BSS) wide statistics for total multicast bytes
          transmitted.

          This counter does not include MLD traffic through this BSS.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="MulticastBytesReceived" access="readOnly">
        <description>
          Access Point (BSS) wide statistics for total multicast bytes
          received.

          This counter does not include MLD traffic through this BSS.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BroadcastBytesSent" access="readOnly">
        <description>
          Access Point (BSS) wide statistics for total broadcast bytes
          transmitted.

          This counter does not include MLD traffic through this BSS.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BroadcastBytesReceived" access="readOnly">
        <description>
          Access Point (BSS) wide statistics for total broadcast bytes
          received.

          This counter does not include MLD traffic through this BSS.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="ByteCounterUnits" access="readOnly" version="2.15">
        <description>
          Byte Counter Units.

          : 1: kibibytes (KiB)

          : 2: mebibytes (MiB).
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="2"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Profile1bSTAsDisallowed" access="readOnly"
          version="2.15">
        <description>
          Profile-1 Backhaul STA association disallowed.

          : {{true}}: Backhaul STA association disallowed;

          : {{false}}: Backhaul STA association allowed.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Profile2bSTAsDisallowed" access="readOnly"
          version="2.15">
        <description>
          Profile-2 Backhaul STA association disallowed.

          : {{true}}: Profile 2 bSTA disallowed;

          : {{false}}: Profile 2 bSTA allowed.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="AssociationAllowanceStatus" access="readOnly"
          version="2.15">
        <description>
          The status of allowance of new client device associations on this
          BSS.

          : 0: No more associations allowed,

          : 1: Associations allowed.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="1"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="EstServiceParametersBE" access="readOnly">
        <description>
          Estimated Service Parameters information field for AC=BE, defined per
          {{bibref|802.11-2020|Figure 9-637}} and referenced in
          {{bibref|EasyMesh|Section 17.2.22}}.
        </description>
        <syntax>
          <base64>
            <size minLength="0" maxLength="3"/>
          </base64>
        </syntax>
      </parameter>

      <parameter name="EstServiceParametersBK" access="readOnly">
        <description>
          Estimated Service Parameters information field for AC=BK, defined per
          {{bibref|802.11-2020|Figure 9-637}} and referenced in
          {{bibref|EasyMesh|Section 17.2.22}}.
        </description>
        <syntax>
          <base64>
            <size minLength="0" maxLength="3"/>
          </base64>
        </syntax>
      </parameter>

      <parameter name="EstServiceParametersVI" access="readOnly">
        <description>
          Estimated Service Parameters information field for AC=VI, defined per
          {{bibref|802.11-2020|Figure 9-637}} and referenced in
          {{bibref|EasyMesh|Section 17.2.22}}.
        </description>
        <syntax>
          <base64>
            <size minLength="0" maxLength="3"/>
          </base64>
        </syntax>
      </parameter>

      <parameter name="EstServiceParametersVO" access="readOnly">
        <description>
          Estimated Service Parameters information field for AC=VO, defined per
          {{bibref|802.11-2020|Figure 9-637}} and referenced in
          {{bibref|EasyMesh|Section 17.2.22}}.
        </description>
        <syntax>
          <base64>
            <size minLength="0" maxLength="3"/>
          </base64>
        </syntax>
      </parameter>

      <parameter name="BackhaulUse" access="readOnly" version="2.15">
        <description>
          Indicates that this BSS is in use as a backhaul BSS;

          : {{true}}: backhaul BSS in use,

          : {{false}}: backhaul BSS not in use.

          In {{bibref|EasyMesh}} 0 is in use and 1 is not in use.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="FronthaulUse" access="readOnly" version="2.15">
        <description>
          Indicates that this BSS is in use as a fronthaul BSS;

          : {{true}}: fronthaul BSS in use,

          : {{false}}: fronthaul BSS not in use.

          In {{bibref|EasyMesh}} 0 is in use and 1 is not in use.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="R1disallowed" access="readOnly" version="2.15">
        <description>
          Multi-AP Profile-1 [3] (R1) disallowed status.

          : {{true}}: disallowed,

          : {{false}}: allowed.

          In {{bibref|EasyMesh}} 0 is allowed and 1 is disallowed.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="R2disallowed" access="readOnly" version="2.15">
        <description>
          Multi-AP Profile-2 [3] (R2) disallowed status.

          : {{true}}: disallowed,

          : {{false}}: allowed.

          In {{bibref|EasyMesh}} 0 is allowed and 1 is disallowed.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MultiBSSID" access="readOnly" version="2.15">
        <description>
          Multiple BSSID Set;

          : {{true}}: configured,

          : {{false}}: not-configured.

          In {{bibref|EasyMesh}}, 1 is configured and 0 is not-configured.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="TransmittedBSSID" access="readOnly" version="2.15">
        <description>
          Transmitted BSSID;

          : {{true}}: transmitted,

          : {{false}}: non-transmitted.

          In {{bibref|EasyMesh}}, 1 is transmitted and 0 is non-transmitted.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="FronthaulAKMsAllowed" access="readWrite" version="2.15">
        <description>
          {{list}} List items indicate Authentication and Key Management (AKM)
          suites/security modes allowed at this BSS for fronthaul. {{enum}}
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="psk">
              <description>
                "psk" indicates one or more of the PSK and FT-PSK AKMs defined
                in {{bibref|802.11-2020|Table 9-151}} typically at least
                "00-0F-AC:2" for interoperability.
              </description>
            </enumeration>
            <enumeration value="dpp">
              <description>
                "dpp" indicates one or more of the DPP and FT-DPP AKMs defined
                in {{bibref|EasyConnect|Section 8.4}}, typically at least
                "50-6F-9A:2" for interoperability.
              </description>
            </enumeration>
            <enumeration value="sae">
              <description>
                "sae" indicates one or more of the SAE and FT-SAE AKMs defined
                in {{bibref|802.11-2020|Table 9-151}} typically at least
                "00-0F-AC:8" for interoperability.
              </description>
            </enumeration>
            <enumeration value="psk+sae"/>
            <enumeration value="dpp+sae"/>
            <enumeration value="dpp+psk+sae"/>
            <enumeration value="SuiteSelector">
              <description>
                "SuiteSelector" indicates an AKM suite selector, the value of
                which is indicated in {{param|FronthaulSuiteSelector}}.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="FronthaulSuiteSelector" access="readWrite"
          version="2.17">
        <description>
          AKM suite selector, the AKM suite selector (OUI and type) is encoded
          as a 4-octet hex-encoded value without internal delimiters, e.g.
          506F9A02 {{bibref|802.11-2020|Table 9-151}}.

          This parameter applies if {{param|FronthaulAKMsAllowed}} includes
          value "SuiteSelector".
        </description>
        <syntax>
          <hexBinary>
            <size minLength="4" maxLength="4"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="BackhaulAKMsAllowed" access="readWrite" version="2.15">
        <description>
          {{list}} List items indicate Authentication and Key Management (AKM)
          suites/security modes allowed at this BSS for backhaul. {{enum}}
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="psk">
              <description>
                "psk" indicates one or more of the PSK and FT-PSK AKMs defined
                in {{bibref|802.11-2020|Table 9-151}} typically at least
                "00-0F-AC:2" for interoperability.
              </description>
            </enumeration>
            <enumeration value="dpp">
              <description>
                "dpp" indicates one or more of the DPP and FT-DPP AKMs defined
                in {{bibref|EasyConnect|Section 8.4}}, typically at least
                "50-6F-9A:2" for interoperability.
              </description>
            </enumeration>
            <enumeration value="sae">
              <description>
                "sae" indicates one or more of the SAE and FT-SAE AKMs defined
                in {{bibref|802.11-2020|Table 9-151}} typically at least
                "00-0F-AC:8" for interoperability.
              </description>
            </enumeration>
            <enumeration value="psk+sae"/>
            <enumeration value="dpp+sae"/>
            <enumeration value="dpp+psk+sae"/>
            <enumeration value="SuiteSelector">
              <description>
                "SuiteSelector" indicates an AKM suite selector, the value of
                which is indicated in {{param|BackhaulSuiteSelector}}.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="BackhaulSuiteSelector" access="readWrite"
          version="2.17">
        <description>
          AKM suite selector, the AKM suite selector (OUI and type) is encoded
          as a 4-octet hex-encoded value without internal delimiters, e.g.
          506F9A02 {{bibref|802.11-2020|Table 9-151}}.

          This parameter applies if {{param|BackhaulAKMsAllowed}} includes
          value "SuiteSelector".
        </description>
        <syntax>
          <hexBinary>
            <size minLength="4" maxLength="4"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="BasicDataTransmitRates" access="readOnly"
          version="2.17">
        <description>
          {{list}} The current basic data rates; the set of data rates, in
          {{units}}, that have to be supported by all stations that desire to
          join this BSS. The stations have to be able to receive and transmit
          at each of the data rates listed in {{param}}. Most control packets
          use a data rate in {{param}}.
        </description>
        <syntax>
          <list/>
          <unsignedInt>
            <units value="kbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

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

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

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.QMDescriptor.{i}."
        access="readOnly" numEntriesParameter="QMDescriptorNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.15">
      <description>
        This object contains a table of {{param|DescriptorElement}}.
      </description>
      <uniqueKey functional="true">
        <parameter ref="ClientMAC"/>
      </uniqueKey>

      <parameter name="BSSID" access="readOnly" version="2.17">
        <description>
          The BSSID of BSS for which this descriptor applies.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="ClientMAC" access="readOnly">
        <description>
          MAC address of STA for which this descriptor applies.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="DescriptorElement" access="readOnly">
        <description>
          The descriptor element. One of:

          : MSCS descriptor element (as described in
            {{bibref|802.11-2020|Section 9.4.2.243}}, or

          : SCS descriptor element (as described in
            {{bibref|802.11-2020|Section 9.4.2.121}}, or

          : QoS Management DSCP policy element (as described in
            {{bibref|802.11-2020|Section 9.4.2.94}} and
            {{bibref|RFC8325|Section 6.3}}).
        </description>
        <syntax>
          <hexBinary/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.MUConfig."
        minEntries="1" maxEntries="1" version="2.17">
      <description>
        This object provides Multiuser (MU)-specific BSS configuration.
      </description>

      <parameter name="DLOFDMAEnable" access="readWrite">
        <description>
          Enable downlink (DL) Orthogonal Frequency-Division Multiple Access
          (OFDMA).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="ULOFDMAEnable" access="readWrite">
        <description>
          Enable uplink (UL) OFDMA.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="DLMUMIMOEnable" access="readWrite">
        <description>
          Enable DL Multi-User Multi-Input Multi-Output (MU-MIMO).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="ULMUMIMOEnable" access="readWrite">
        <description>
          Enable UL MU-MIMO.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.MUStats."
        minEntries="1" maxEntries="1" version="2.17">
      <description>
        This object provides packet statistics for a Multiuser (MU) BSS.
      </description>

      <parameter name="DLTotalPPDUCount" access="readOnly">
        <description>
          Total number of Physical-layer Protocol Data Units (PPDUs)
          transmitted by the Wi-Fi Basic Service Set (BSS).
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="DLHEPPDUCount" access="readOnly">
        <description>
          Number of High-Efficiency (HE) PPDUs transmitted by the BSS.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="DLMUPPDUCount" access="readOnly">
        <description>
          Number of Multi-User (MU) PPDUs transmitted by the BSS.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="DLOFDMAPPDUCount" access="readOnly">
        <description>
          Number of Orthogonal Frequency-Division Multiple Access (OFDMA) PPDUs
          transmitted by the BSS.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="DLMUMIMOPPDUCount" access="readOnly">
        <description>
          Number of Multi-Input Multi-Output (MU-MIMO) PPDUs transmitted by the
          BSS.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="DLOFDMAMUMIMOPPDUCount" access="readOnly">
        <description>
          Number of PPDUs transmitted by the BSS with OFDMA and MU-MIMO.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="ULTotalPPDUCount" access="readOnly">
        <description>
          Total number of PPDUs received by the BSS.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="ULHEPPDUCount" access="readOnly">
        <description>
          Number of High-Efficiency (HE) PPDUs received by the BSS.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="ULMUPPDUCount" access="readOnly">
        <description>
          Number of MU PPDUs received by the BSS.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="ULOFDMAPPDUCount" access="readOnly">
        <description>
          Number of OFDMA PPDUs received by the BSS.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="ULMUMIMOPPDUCount" access="readOnly">
        <description>
          Number of MU-MIMO PDDUs received by the BSS.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="ULOFDMAMUMIMOPPDUCount" access="readOnly">
        <description>
          Number of PPDUs received by the BSS with OFDMA and MU-MIMO.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="DLRU26PPDUCount" access="readOnly">
        <description>
          Number of PPDUs sent on the downlink using Resource Unit (RU) RU26.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="DLRU52PPDUCount" access="readOnly">
        <description>
          Number of PPDUs sent on the downlink using RU52.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="DLRU106PPDUCount" access="readOnly">
        <description>
          Number of PPDUs sent on the downlink using RU106.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="DLRU242PPDUCount" access="readOnly">
        <description>
          Number of PPDUs sent on the downlink using RU242.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="DLRU484PPDUCount" access="readOnly">
        <description>
          Number of PPDUs sent on the downlink using RU484.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="DLRU996PPDUCount" access="readOnly">
        <description>
          Number of PPDUs sent on the downlink using RU996.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="DLRU1992PPDUCount" access="readOnly">
        <description>
          Number of PPDUs sent on the downlink using RU1992.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="ULRU26PPDUCount" access="readOnly">
        <description>
          Number of PPDUs received on the uplink using RU26.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="ULRU52PPDUCount" access="readOnly">
        <description>
          Number of PPDUs received on the uplink using RU52.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="ULRU106PPDUCount" access="readOnly">
        <description>
          Number of PPDUs received on the uplink using RU106.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="ULRU242PPDUCount" access="readOnly">
        <description>
          Number of PPDUs received on the uplink using RU242.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="ULRU484PPDUCount" access="readOnly">
        <description>
          Number of PPDUs received on the uplink using RU484.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="ULRU996PPDUCount" access="readOnly">
        <description>
          Number of PPDUs received on the uplink using RU996.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="ULRU1992PPDUCount" access="readOnly">
        <description>
          Number of PPDUs received on the uplink using RU1992.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.MultiAPSteering."
        access="readOnly" minEntries="1" maxEntries="1" version="2.15">
      <description>
        A single logical Access Point operating on this radio.
      </description>

      <parameter name="BlacklistAttempts" access="readOnly">
        <description>
          Number of times a Blacklist steer was attempted for this Access
          Point.

          Blacklist steering is the process of forcing a connected STA to move
          to another Access Point by temporarily blocking its access to the
          current Access Point.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BTMAttempts" access="readOnly">
        <description>
          Number of times a BTM (BSS Transition Management;
          {{bibref|802.11-2020|sections 4.3.19.3 and 6.3.57}} steer was
          attempted for this Access Point.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BTMQueryResponses" access="readOnly">
        <description>
          Number of asynchronous BTM (BSS Transition Management;
          {{bibref|802.11-2020|sections 4.3.19.3 and 6.3.57}} Queries for which
          a BTM Request was issued by this Access Point.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.ThroughputTestResult."
        access="readOnly" minEntries="1" maxEntries="1" version="2.17">
      <description>
        Object containing the results of the most recent throughput (speed)
        test from the BSS to a station (STA).
      </description>

      <parameter name="TimeStamp" access="readOnly">
        <description>
          Timestamp for the throughput test, indicating when the test
          completed.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="ClientMAC" access="readOnly">
        <description>
          MAC address of the STA that the throughput test ran to.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="VID" access="readOnly">
        <description>
          The VLAN ID (VID) that the throughput test ran on.

          A value of 0 indicates that no VLAN was specified.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="4095"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="WMMUP" access="readOnly">
        <description>
          Wireless MultiMedia (WMM) User Priority (UP) {{bibref|WMM}} that the
          throughput test was requested to run on.

          A value of 8 indicates that no UP was specified.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="8"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TestDuration" access="readOnly">
        <description>
          Duration of the throughput test in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TestLayer" access="readOnly">
        <description>
          The OSI layer that the throughput test ran on.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="TestAlgorithm" access="readOnly">
        <description>
          The test algorithm that the throughput test used.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="DownlinkSpeed" access="readOnly">
        <description>
          Downlink speed found by the throughput test in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="kbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="UplinkSpeed" access="readOnly">
        <description>
          Uplink speed found by the throughput test in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="kbps"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.LatencyTestResult."
        access="readOnly" minEntries="1" maxEntries="1" version="2.17">
      <description>
        Object containing the results of the most recent latency test set from
        the BSS to a station (STA). Each latency test set includes a number of
        individual echo tests. Each echo test result provides a sample of
        round-trip times and statistics on all the echo tests in this latency
        test are reported in this object.
      </description>

      <parameter name="TimeStamp" access="readOnly">
        <description>
          Timestamp for the latency test, indicating when the last echo in the
          latency test set was received or timed-out.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="ClientMAC" access="readOnly">
        <description>
          MAC address of the station (STA) or EasyMesh Agent that the latency
          test ran to.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="VID" access="readOnly">
        <description>
          The VLAN ID (VID) that the latency test ran on.

          A value of 0 indicates that no VLAN was specified.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="4095"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="WMMUP" access="readOnly">
        <description>
          Wireless MultiMedia (WMM) User Priority (UP) {{bibref|WMM}} that the
          latency test was requested to run on.

          A value of 8 indicates that no UP was specified.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="8"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="DataBlockSize" access="readOnly">
        <description>
          The size of each data block, in {{units}}, that was transmitted in
          each echo test. The data block excludes the packet or frame header.

          A value of 0 indicates that no DataBlockSize was specified.
        </description>
        <syntax>
          <unsignedInt>
            <units value="bytes"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TestLayer" access="readOnly">
        <description>
          The OSI layer that the latency test ran on.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="TestAlgorithm" access="readOnly">
        <description>
          The test algorithm that the latency test used.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="SuccessCount" access="readOnly">
        <description>
          The number of successfully received echo responses.

          This parameter is an output of the latency test.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="LostCount" access="readOnly">
        <description>
          The number of lost echoes in the latency test set.

          This parameter is an output of the latency test.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="AverageResponseTime" access="readOnly">
        <description>
          The average round-trip time of the results of the latency test set in
          {{units}}. This average is across successfully received echoes only.

          This parameter is an output of the latency test.
        </description>
        <syntax>
          <unsignedInt>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MinimumResponseTime" access="readOnly">
        <description>
          The minimum round-trip time of the results of the latency test set in
          {{units}}. This minimum is across successfully received echoes only.

          This parameter is an output of the latency test.
        </description>
        <syntax>
          <unsignedInt>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MaximumResponseTime" access="readOnly">
        <description>
          The maximum round-trip time of the results of the latency test set in
          {{units}}. This maximum is across successfully received echoes only.

          This parameter is an output of the latency test.
        </description>
        <syntax>
          <unsignedInt>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.SetQoSManagementInput."
        access="readOnly" minEntries="1" maxEntries="1" version="2.19">
      <description>
        This object records inputs for setting QoS Management
        {{bibref|EasyMesh|Section 20}}.
      </description>

      <parameter name="QosMapEnable" access="readOnly">
        <description>
          Indicates whether QoS Map is enabled on this BSS.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MSCSEnable" access="readOnly">
        <description>
          Indicates whether Mirrored Stream Classification Service (MSCS) is
          enabled on this BSS.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="SCSEnable" access="readOnly">
        <description>
          Indicates whether Stream Classification Service (SCS) is enabled on
          this BSS.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="DSCPPolicyEnable" access="readOnly">
        <description>
          Indicates whether DSCP Policy is enabled on this BSS.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="SCSTrafficDescriptionEnable" access="readOnly">
        <description>
          Indicates whether the extensions to SCS using Traffic Descriptions is
          enabled on this BSS.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}."
        access="readOnly" numEntriesParameter="STANumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.13">
      <description>
        Object describing a single Associated Device (STA).
      </description>
      <uniqueKey functional="true">
        <parameter ref="MACAddress"/>
      </uniqueKey>

      <parameter name="MACAddress" access="readOnly">
        <description>
          The MAC address of an associated device.

          If the instance of this {{object}} is the same as
          {{object|Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}}}, then
          this parameter is the same as
          {{param|Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.MACAddress}}.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="TimeStamp" access="readOnly">
        <description>
          The time this group was collected. Formatted with the date-and-time
          string format as defined in {{bibref|RFC3339|Section 3}}.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="HTCapabilities" access="readOnly">
        <description>
          Describes the HT capabilities of the Associated Device (STA).
        </description>
        <syntax>
          <base64>
            <size minLength="1" maxLength="1"/>
          </base64>
        </syntax>
      </parameter>

      <parameter name="VHTCapabilities" access="readOnly">
        <description>
          Describes the VHT capabilities of the Associated Device (STA).
        </description>
        <syntax>
          <base64>
            <size minLength="2" maxLength="6"/>
          </base64>
        </syntax>
      </parameter>

      <parameter name="HECapabilities" access="readOnly" status="deleted">
        <description>
          Describes the HE capabilities of the Associated Device (STA).

          {{deprecated|2.15|because it is superseded by
          {{object|WiFi6Capabilities}}}}

          {{obsoleted|2.17}}

          {{deleted|2.18}}
        </description>
        <syntax>
          <base64>
            <size minLength="4" maxLength="14"/>
          </base64>
        </syntax>
      </parameter>

      <parameter name="ClientCapabilities" access="readOnly" version="2.15">
        <description>
          The frame body of the most recently received (Re)Association Request
          frame from this client (STA), as defined in Table 9-34 and Table 9-36
          of {{bibref|802.11-2020}} in the order of the underlying referenced
          standard.
        </description>
        <syntax>
          <base64/>
        </syntax>
      </parameter>

      <parameter name="LastDataDownlinkRate" access="readOnly">
        <description>
          The data transmit rate in {{units}} that was most recently used for
          transmission of data from the access point to the associated device.

          If the instance of this {{object}} is the same as
          {{object|Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}}}, then
          this parameter is the same as
          {{param|Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.LastDataDownlinkRate}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="kbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LastDataUplinkRate" access="readOnly">
        <description>
          The data transmit rate in {{units}} that was most recently used for
          transmission of data from the associated device to the access point.

          If the instance of this {{object}} is the same as
          {{object|Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}}}, then
          this parameter is the same as
          {{param|Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.LastDataUplinkRate}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="kbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="UtilizationReceive" access="readOnly">
        <description>
          The amount of time in {{units}} that the Radio has spent on the
          Channel receiving data from this Associated Device (STA).
        </description>
        <syntax>
          <unsignedLong>
            <units value="milliseconds"/>
          </unsignedLong>
        </syntax>
      </parameter>

      <parameter name="UtilizationTransmit" access="readOnly">
        <description>
          The amount of time in {{units}} that the Radio has spent on the
          Channel transmitting data to this Associated Device (STA).
        </description>
        <syntax>
          <unsignedLong>
            <units value="milliseconds"/>
          </unsignedLong>
        </syntax>
      </parameter>

      <parameter name="EstMACDataRateDownlink" access="readOnly">
        <description>
          Estimate of the MAC layer throughput in {{units}} achievable in the
          downlink direction if 100% of channel airtime and BSS operating
          bandwidth were available, as defined in {{bibref|EasyMesh|Section
          10.3.1}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="EstMACDataRateUplink" access="readOnly">
        <description>
          Estimate of the MAC layer throughput in {{units}} achievable in the
          uplink direction if 100% of channel airtime and BSS operating
          bandwidth were available, as defined in {{bibref|EasyMesh|Section
          10.3.1}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SignalStrength" access="readOnly">
        <description>
          An indicator of radio signal strength of the uplink from the
          associated STA to the access point - measured in {{units}}. RCPI is
          encoded per {{bibref|802.11-2020|Table 9-176}}, and described in
          {{bibref|EasyMesh|Section 10.3.1}}). Reserved: 221 - 255.

          If the instance of this {{object}} is the same as
          {{object|Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}}}, then
          this parameter is the same as
          {{param|Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.SignalStrength}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
            <units value="dBm"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LastConnectTime" access="readOnly">
        <description>
          The time in {{units}} since this Associated Device (STA) was
          associated.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="BytesSent" access="readOnly">
        <description>
          The total number of bytes transmitted to the Associated Device.

          If the instance of this {{object}} is the same as
          {{object|Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}}}, then
          this parameter is the same as
          {{param|Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.BytesSent}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" access="readOnly">
        <description>
          The total number of bytes received from the Associated Device.

          If the instance of this {{object}} is the same as
          {{object|Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}}}, then
          this parameter is the same as
          {{param|Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.BytesReceived}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" access="readOnly">
        <description>
          The total number of packets transmitted to the Associated Device.

          If the instance of this {{object}} is the same as
          {{object|Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}}}, then
          this parameter is the same as
          {{param|Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.PacketsSent}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" access="readOnly">
        <description>
          The total number of packets received from the Associated Device.

          If the instance of this {{object}} is the same as
          {{object|Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}}}, then
          this parameter is the same as
          {{param|Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.PacketsReceived}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" access="readOnly">
        <description>
          The total number of outbound packets that could not be transmitted
          because of errors. These might be due to the number of
          retransmissions exceeding the retry limit, or from other causes.

          If the instance of this {{object}} is the same as
          {{object|Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}}}, then
          this parameter is the same as
          {{param|Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.ErrorsSent}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

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

          If the instance of this {{object}} is the same as
          {{object|Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}}}, then
          this parameter is the same as
          {{param|Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.ErrorsReceived}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="RetransCount" access="readOnly">
        <description>
          The total number of transmitted packets which were retransmissions.
          Two retransmissions of the same packet results in this counter
          incrementing by two.

          If the instance of this {{object}} is the same as
          {{object|Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}}}, then
          this parameter is the same as
          {{param|Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.RetransCount}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="MeasurementReport" access="readOnly">
        <description>
          {{list}} Measurement Report element(s) received from the Associated
          Device (STA) that constitute the latest Beacon report as defined in
          {{bibref|802.11-2020|Figure 9-230}}.
        </description>
        <syntax>
          <list/>
          <base64/>
        </syntax>
      </parameter>

      <parameter name="NumberOfMeasureReports" access="readOnly">
        <description>
          The number of measurement report elements contained in
          {{param|MeasurementReport}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="IPV4Address" access="readOnly">
        <description>
          IPV4 Address assigned to the client.
        </description>
        <syntax>
          <dataType ref="IPv4Address"/>
        </syntax>
      </parameter>

      <parameter name="IPV6Address" access="readOnly">
        <description>
          IPV6Address assigned to the client.
        </description>
        <syntax>
          <dataType ref="IPv6Address"/>
        </syntax>
      </parameter>

      <parameter name="Hostname" access="readOnly">
        <description>
          Hostname assigned to the client.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="CellularDataPreference" access="readWrite"
          version="2.15">
        <description>
          This is the Cellular Data Preference for a Agile Multiband (AMB)
          capable STA This specifies the use of the cellular data connection.
          {{bibref|AMB}} {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="Excluded"/>
            <enumeration value="Should not use"/>
            <enumeration value="Should use"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ReAssociationDelay" access="readWrite" version="2.15">
        <description>
          Re-association Delay {{bibref|AMB}}. The time, in {{units}}, after a
          BTM steer from AP1 to AP2 during which the station cannot go back and
          re-associate with AP1.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
            <range maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SleepMode" access="readOnly" version="2.17">
        <description>
          This parameter indicates the current operating sleep mode as recorded
          by the BSS {{bibref|802.11-2020}}. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="Not_Asleep"/>
            <enumeration value="WNM_Sleep_Mode"/>
            <enumeration value="TPU_Sleep"/>
            <enumeration value="TDLS_Peer_Power_Save_Mode_(PSM)"/>
            <enumeration value="AP_PS-Poll"/>
            <enumeration value="TWT_Sleep"/>
            <enumeration value="Light_Sleep"/>
            <enumeration value="Deep_Sleep"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SecurityAssociation" access="readOnly" version="2.17">
        <description>
          This parameter indicates the current operating security state as
          defined in {{bibref|802.11-2020|Section 12.6.1.1}}. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="PMKSA"/>
            <enumeration value="PMK-R0"/>
            <enumeration value="PMK-R1"/>
            <enumeration value="Mesh_PMKSA"/>
            <enumeration value="Mesh_TKSA"/>
            <enumeration value="PTKSA"/>
            <enumeration value="GTKSA"/>
            <enumeration value="IGTKSA"/>
            <enumeration value="Mesh_GTKSA"/>
            <enumeration value="BIGTKSA"/>
            <enumeration value="TPKSA"/>
            <enumeration value="Other"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="PairwiseAKM" access="readOnly" version="2.19">
        <description>
          Pairwise AKM suite selector selected by the associated device (STA).
          The Pairwise AKM suite selector (OUI and type) is encoded as a
          4-octet hex-encoded value without internal delimiters, e.g. 506F9A02
          {{bibref|802.11-2020|Table 9-151}}.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="4" maxLength="4"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="PairwiseCipher" access="readOnly" version="2.19">
        <description>
          Pairwise AKM cipher selector selected by the associated device (STA).
          The Pairwise AKM cipher selector (OUI and type) is encoded as a
          4-octet hex-encoded value without internal delimiters, e.g. 506F9A02
          {{bibref|802.11-2020|Table 9-149, OUI field}}.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="4" maxLength="4"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="RSNCapabilities" access="readOnly" version="2.19">
        <description>
          The RSN Capabilities selected by the STA during association
          {{bibref|802.11-2020|Section 9.4.2.24.4,}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

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

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.MultiAPSTA."
        access="readOnly" minEntries="1" maxEntries="1" version="2.15">
      <description>
        The summary of statistics and operations for an individual STA on the
        Wi-Fi network.

        The counters contained in {{object}} are all reset on reboot.
      </description>

      <parameter name="AssociationTime" access="readOnly" status="deprecated">
        <description>
          Date and time in UTC when the device was associated.

          If the instance of this {{object}} is the same as
          {{object|Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.}}, then
          this parameter is the same as
          {{param|Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.AssociationTime}}.

          {{deprecated|2.18|because it was essentially the same as
          {{param|#.LastConnectTime}}.}}
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="Noise" access="readOnly" status="deprecated">
        <description>
          An indicator of the average radio noise plus interference power
          measured on the uplink from the Associated Device (STA) to the Access
          Point (AP).

          Encoded as defined for ANPI in {{bibref|802.11-2020|Section
          11.10.9.4}}.

          If the instance of this {{object}} is the same as
          {{object|Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.}}, then
          this parameter is the same as
          {{param|Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Noise}}.

          {{deprecated|2.18|because it should be the same as
          {{param|###.Noise}}.}}
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

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

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.MultiAPSTA.SteeringSummaryStats."
        access="readOnly" minEntries="1" maxEntries="1" version="2.15">
      <description>
        The summary of statistics related to Multi-AP Steering for this STA on
        the Wi-Fi network.

        The counters contained in {{object}} are all reset on reboot.
      </description>

      <parameter name="NoCandidateAPFailures" access="readOnly">
        <description>
          Number of times this Associated Device should have been steered but
          wasn't because a better candidate AP couldn't be found.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BlacklistAttempts" access="readOnly">
        <description>
          Number of times a Blacklist steer was attempted on this Associated
          Device.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BlacklistSuccesses" access="readOnly">
        <description>
          Number of times an attempted Blacklist steer succeeded for this
          Associated Device.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BlacklistFailures" access="readOnly">
        <description>
          Number of times an attempted Blacklist steer failed for this
          Associated Device.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BTMAttempts" access="readOnly">
        <description>
          Number of times a BTM (BSS Transition Management; {{bibref|802.11k}})
          steer was attempted on this Associated Device.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BTMSuccesses" access="readOnly">
        <description>
          Number of times an attempted BTM (BSS Transition Management;
          {{bibref|802.11k}}) steer succeeded for this Associated Device.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BTMFailures" access="readOnly">
        <description>
          Number of times an attempted BTM (BSS Transition Management;
          {{bibref|802.11k}}) steer failed for this Associated Device.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BTMQueryResponses" access="readOnly">
        <description>
          Number of asynchronous BTM (BSS Transition Management;
          {{bibref|802.11k}}) Queries for which a BTM Request was issued to
          this Associated Device.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="LastSteerTime" access="readOnly">
        <description>
          The number of {{units}} since this Associated Device was last
          attempted to be steered.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.MultiAPSTA.SteeringHistory.{i}."
        access="readOnly" numEntriesParameter="SteeringHistoryNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.15">
      <description>
        The history of Multi-AP Steering for this STA on the Wi-Fi network.

        The contents of this multi-instance object are reset on reboot.
      </description>
      <uniqueKey functional="true">
        <parameter ref="Time"/>
        <parameter ref="APOrigin"/>
        <parameter ref="APDestination"/>
      </uniqueKey>

      <parameter name="Time" access="readOnly">
        <description>
          The date/time when steering was initiated for the Associated Device.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="APOrigin" access="readOnly">
        <description>
          The BSSID of the Access Point that initiated the steering.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="TriggerEvent" access="readOnly">
        <description>
          The type of event that caused the steering to be initiaited. {{enum}}

          NOTE: This might be Unknown for BTM Query Response steers.
        </description>
        <syntax>
          <string>
            <enumeration value="Unknown"/>
            <enumeration value="Wi-Fi Channel Utilization"/>
            <enumeration value="Wi-Fi Link Quality"/>
            <enumeration value="Backhaul Link Utilization"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SteeringApproach" access="readOnly">
        <description>
          The type of steering that was attempted. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="Blacklist"/>
            <enumeration value="BTM Request"/>
            <enumeration value="Async BTM Query"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="APDestination" access="readOnly">
        <description>
          The BSSID of the destination Access Point of a successful steer.

          A failed steering attempt will leave this parameter {{empty}}.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="SteeringDuration" access="readOnly">
        <description>
          The amount of time in {{units}} required for the steer to complete
          successfully.

          A failed steering attempt will leave this parameter 0.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.WiFi6Capabilities."
        access="readOnly" minEntries="1" maxEntries="1" version="2.15">
      <description>
        Describes the Wi-Fi 6 capabilities of the Associated Device (STA).
      </description>

      <parameter name="HE160" access="readOnly">
        <description>
          Indicates support for High Efficiency (HE) 160 MHz.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="HE8080" access="readOnly">
        <description>
          Indicates support for HE 80+80 MHz.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MCSNSS" access="readOnly">
        <description>
          Supported High Efficiency-Modulation and Coding Scheme (HE-MCS) and
          Number of Spatial Streams (NSS) Set field as defined in
          {{bibref|802.11ax|Figure 9-788d}} Supported HE-MCS And NSS Set field
          format. HE-MCS And NSS Set field for 160MHz is present if 160MHz is
          supported. HE-MCS And NSS Set field for 80+80MHz is present if
          80+80MHz is supported.
        </description>
        <syntax>
          <base64>
            <size minLength="4" maxLength="12"/>
          </base64>
        </syntax>
      </parameter>

      <parameter name="SUBeamformer" access="readOnly">
        <description>
          Indicates support for Single-User (SU) Beamformer.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="SUBeamformee" access="readOnly">
        <description>
          Indicates support for SU Beamformee.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MUBeamformer" access="readOnly">
        <description>
          Indicates support for Multi-User (MU) Beamformer.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Beamformee80orLess" access="readOnly">
        <description>
          Indicates support for Beamformee Space-Time Stream (STS) ≤ 80 MHz.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BeamformeeAbove80" access="readOnly">
        <description>
          Indicates support for Beamformee STS &gt; 80 MHz.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="ULMUMIMO" access="readOnly">
        <description>
          Indicates support for Uplink (UL) Multi-User Multiple Input, Multiple
          Output (MU-MIMO).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="ULOFDMA" access="readOnly">
        <description>
          Indicates support for UL Orthogonal Frequency Division Multiplexing
          (OFDMA).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="DLOFDMA" access="readOnly" version="2.17">
        <description>
          Indicates support for Downlink (DL) Orthogonal Frequency Division
          Multiplexing (OFDMA).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MaxDLMUMIMO" access="readOnly">
        <description>
          Max number of users supported per DL MU-MIMO Transmitter (TX) in the
          BSS role.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MaxULMUMIMO" access="readOnly">
        <description>
          Max number of users supported per UL MU-MIMO Receiver (RX) in the BSS
          role.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MaxDLOFDMA" access="readOnly">
        <description>
          Max number of users supported per Downlink (DL) OFDMA TX in the BSS
          role.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MaxULOFDMA" access="readOnly">
        <description>
          Max number of users supported per UL OFDMA RX in the BSS role.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RTS" access="readOnly">
        <description>
          Indicates support for Request To Send (RTS).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MURTS" access="readOnly">
        <description>
          Indicates support for MU RTS.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MultiBSSID" access="readOnly">
        <description>
          Indicates support for Multi-Basic Service Set Identifier (BSSID).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MUEDCA" access="readOnly">
        <description>
          Indicates support for MU Enhanced distributed channel access (EDCA).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="TWTRequestor" access="readOnly">
        <description>
          Indicates support for Target Wake Time (TWT) Requestor.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="TWTResponder" access="readOnly">
        <description>
          Indicates support for TWT Responder.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="SpatialReuse" access="readOnly">
        <description>
          Indicates support for EasyMesh configuration and reporting of BSS
          Color and Spatial Reuse.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="AnticipatedChannelUsage" access="readOnly">
        <description>
          Indicates support for Anticipated Channel Usage (ACU) reporting.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.HaLowCapabilities."
        access="readOnly" minEntries="1" maxEntries="1" version="2.19">
      <description>
        Describes the HaLow capabilities of the Associated Device (STA). most
        of which can be extracted from the Sub 1 GHz (S1G) capabilities
        Information Element (IE) in {{bibref|802.11-2020|Section 9.4.2.200.2}}.
      </description>

      <parameter name="BW4MHz" access="readOnly">
        <description>
          Indicates support for 4 MHz operation.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BW8MHz" access="readOnly">
        <description>
          Indicates support for 8 MHz operation.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BW16MHz" access="readOnly">
        <description>
          Indicates support for 16 MHz operation.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="S1GLong" access="readOnly">
        <description>
          Indicates support for the reception of S1G_LONG Physical layer
          Protocol Data Units (PPDUs).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BW1MHzShortGI" access="readOnly">
        <description>
          Indicates support for 1 MHz short Guard Interval (GI).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BW2MHzShortGI" access="readOnly">
        <description>
          Indicates support for 2 MHz short GI.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BW4MHzShortGI" access="readOnly">
        <description>
          Indicates support for 4 MHz short GI.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BW8MHzShortGI" access="readOnly">
        <description>
          Indicates support for 8 MHz short GI.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BW16MHzShortGI" access="readOnly">
        <description>
          Indicates support for 16 MHz short GI.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="AMSDU" access="readOnly">
        <description>
          Indicates support of Aggregated MAC Service Data Units (AMSDU).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="AMPDU" access="readOnly">
        <description>
          Indicates support of Aggregated MAC Protocol Data Units (AMPDU).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="FlowControl" access="readOnly">
        <description>
          Indicates support for Flow Control {{bibref|802.11-2020|Section
          10.61}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="CentralizedAuthenticationControl" access="readOnly">
        <description>
          Indicates support for Centralized Authentication Control
          {{bibref|802.11-2020|Section 11.3.9.2}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="DistributedAuthenticationControl" access="readOnly">
        <description>
          Indicates support for Distributed Authentication Control (DAC)
          {{bibref|802.11-2020|Section 11.3.9.3}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MaxMPDULen" access="readOnly">
        <description>
          Indicates the maximum MAC Protocol Data Unit (MPDU) length in octets.
          {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="3895"/>
            <enumeration value="7991"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="NonTIMMode" access="readOnly">
        <description>
          Indicates support of non-Traffic Indication Map (non-TIM) operation
          {{bibref|802.11-2020|Section 10.48}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="DynamicAID" access="readOnly">
        <description>
          Indicates support of Dynamic Association ID (AID) operation
          {{bibref|802.11-2020|Section 10.20}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="GroupAID" access="readOnly">
        <description>
          Indicates support of Group Association ID (AID)
          {{bibref|802.11-2020|Section 10.55}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BATSupport" access="readOnly">
        <description>
          Indicates support for the use of the Block Acknowledgment TWT (BAT)
          frame in Block Agreements {{bibref|802.11-2020|Section 9.8.4.3}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="RAWOperation" access="readOnly">
        <description>
          Indicates support for Restricted access window (RAW) operation
          {{bibref|802.11-2020|Section 10.23.5}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="PageSlicing" access="readOnly">
        <description>
          Indicates support for Page Slicing Operation
          {{bibref|802.11-2020|Section 10.51}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="PV1Frame" access="readOnly">
        <description>
          Indicates support for Protocol Version 1 (PV1) frames
          {{bibref|802.11-2020|Section 9.8}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="TxMCSNSS" access="readOnly">
        <description>
          Supported Tx S1G-MCS Map subfield and Coding Scheme (S1G-MCS) and
          Number of Spatial Streams (NSS) Set field as defined in
          {{bibref|802.11-2020|Figure 9-694}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RxMCSNSS" access="readOnly">
        <description>
          Supported Rx S1G-MCS Map subfield and Coding Scheme (S1G-MCS) and
          Number of Spatial Streams (NSS) Set field as defined in
          {{bibref|802.11-2020|Figure 9-694}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SUBeamformer" access="readOnly">
        <description>
          Indicates support for Single-User (SU) Beamformer
          {{bibref|802.11-2020|10.36.5 VHT sounding protocol}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="SUBeamformee" access="readOnly">
        <description>
          Indicates support for Single-User (SU) Beamformee
          {{bibref|802.11-2020|10.36.5 VHT sounding protocol}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MUBeamformer" access="readOnly">
        <description>
          Indicates support for Multi-User (MU) Beamformer
          {{bibref|802.11-2020|10.36.5 VHT sounding protocol}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MUBeamformee" access="readOnly">
        <description>
          Indicates support for Multi-User (MU) Beamformee
          {{bibref|802.11-2020|10.36.5 VHT sounding protocol}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="TravelingPilot" access="readOnly">
        <description>
          Indicates support for or the reception of PPDUs with traveling pilots
          {{bibref|802.11-2020|10.56 Traveling pilot operation}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="TWTGrouping" access="readOnly">
        <description>
          Indicates support for Target Wake Time (TWT) Grouping
          {{bibref|802.11-2020|10.47.5 TWT grouping}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="TWTRequestor" access="readOnly">
        <description>
          Indicates support for Target Wake Time (TWT) Requestor
          {{bibref|802.11-2020|10.47 Target wake time (TWT)}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="TWTResponder" access="readOnly">
        <description>
          Indicates support for Target Wake Time (TWT) TWTResponder
          {{bibref|802.11-2020|10.47 Target wake time (TWT)}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="IsSensorDevice" access="readOnly">
        <description>
          Indicates if this is a sensor device. A value of {{false}} indicates
          this is a non-sensor device.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.TIDQueueSizes.{i}."
        access="readOnly" numEntriesParameter="TIDQueueSizesNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.15">
      <description>
        Object describing Traffic Identifiers (TIDs), and Queue Size for each
        TID, for this Associated Device (STA).
      </description>
      <uniqueKey functional="true">
        <parameter ref="TID"/>
      </uniqueKey>

      <parameter name="TID" access="readOnly">
        <description>
          The TID of the corresponding Queue Size field.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Size" access="readOnly">
        <description>
          Queue Size for this TID. Its format is defined in Table 9-10-QoS
          Control field {{bibref|802.11-2020}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.MultiAPRadio."
        access="readOnly" minEntries="1" maxEntries="1" version="2.15">
      <description>
        This object represents an individual Access Point Radio in the Wi-Fi
        network.
      </description>

      <parameter name="RadarDetections" access="readOnly" status="deprecated">
        <description>
          {{list}} List items represent channels in the non-occupancy list due
          to radars detected by Dynamic Frequency Selection (DFS) Channel
          Availability Check (CAC).

          {{deprecated|2.18|because it was superseded by
          {{object|##.CACStatus.{i}.}}.}}
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.UnassociatedSTA.{i}."
        access="readOnly" numEntriesParameter="UnassociatedSTANumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.13">
      <description>
        Each instance represents a station (STA) that has been discovered by
        the Radio but is not associated to any of the BSS operating on the
        Radio.
      </description>
      <uniqueKey functional="true">
        <parameter ref="MACAddress"/>
      </uniqueKey>

      <parameter name="MACAddress" access="readOnly">
        <description>
          The MAC address of the Non-AP STA.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="SignalStrength" access="readOnly">
        <description>
          An indicator of radio signal strength (RCPI) of the uplink from the
          Non-AP STA - measured in {{units}}. RCPI is encoded per
          {{bibref|802.11-2020|Table 9-176}}, and described in
          {{bibref|EasyMesh|Section 10.3.2}}. Reserved: 221 - 255.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
            <units value="dBm"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="OperatingClass" access="readOnly" version="2.17">
        <description>
          Operating class on which this unassociated STA was last detected, per
          {{bibref|802.11ax|Table E-4}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Channel" access="readOnly" version="2.17">
        <description>
          Channel on which this unassociated STA was last detected.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.DataElements.Network.Device.{i}.WPS."
        access="readOnly" minEntries="1" maxEntries="1" version="2.17">
      <description>
        This object contains Wi-Fi Protected Setup (WPS) Push Button
        Configuration (PBC) configuration and status as specified in
        {{bibref|WPSv1.0}} or {{bibref|WPS 2.0}}). In EasyMesh
        {{bibref|EasyMesh}} this object applies to fronthaul only.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables WPS functionality for this EasyMesh agent or
          single AP.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          Indicates the current status of WPS. If the device goes to
          {{enum|SetupLocked}} the WPS needs to be disabled and re-enabled to
          come out of this state.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Error"/>
            <enumeration value="Unconfigured"/>
            <enumeration value="Configured"/>
            <enumeration value="SetupLocked"/>
            <enumeration value="InProgress"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.DataElements.Network.Device.{i}.APMLD.{i}."
        access="readOnly" numEntriesParameter="APMLDNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.17">
      <description>
        Table of Multi-Link Operation (MLO) capable Access Points (APs) on this
        EasyMesh Agent or Single AP device. {{bibref|EasyMesh}} source: Agent
        AP MLD Configuration TLV.
      </description>
      <uniqueKey functional="true">
        <parameter ref="MLDMACAddress"/>
      </uniqueKey>

      <parameter name="MLDMACAddress" access="readOnly">
        <description>
          The Multi-Link Device (MLD) MAC Address of the MLO Capable access
          point (AP). {{bibref|EasyMesh}} Source: Agent AP MLD Configuration
          TLV.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

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

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

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

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

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.APMLD.{i}.APMLDConfig."
        access="readOnly" minEntries="1" maxEntries="1" version="2.17">
      <description>
        This object describes the Wi-Fi 7 Multi-Link Operation (MLO)
        configuration of the Multi-Link Device (MLD) Access Point (AP),
        {{bibref|EasyMesh}} source: Agent AP MLD Configuration TLV.
      </description>

      <parameter name="EMLMREnabled" access="readWrite">
        <description>
          Indicates if the Enhanced Multi-Link Multi-Radio (EMLMR) operation is
          enabled.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="EMLSREnabled" access="readWrite">
        <description>
          Indicates if Enhanced Multi-Link Single-Radio (EMLSR) operation is
          enabled.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="STREnabled" access="readWrite">
        <description>
          Indicates if Simultaneous Transmit and Receive (STR) operation is
          enabled.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="NSTREnabled" access="readWrite">
        <description>
          Indicates if Non-Simultaneous Transmit and Receive (NSTR) operation
          is enabled.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="TIDLinkMapNegotiation" access="readWrite">
        <description>
          Indicates if Traffic Identifier (TID) to Link Mapping Negotiation is
          enabled. {{bibref|EasyMesh}} source: TID-to-Link Mapping Policy TLV.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

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

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.APMLD.{i}.APMLDConfig.TIDToOpClassPolicy.{i}."
        access="readWrite" enableParameter="Enable"
        numEntriesParameter="TIDToOpClassPolicyNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.19">
      <description>
        Table of Traffic Identifier (TID) to Operating Class to be used as a
        policy when configuring TID-to-Link Mapping in the Multi-Link Operation
        (MLO) capable access point (AP). Each table entry describes the mapping
        between a particular TID and direction and the required current
        Operating Class for any link to be used for this TID when constructing
        a TID-to-Link Map {{bibref|EasyMesh|Section 20.2.8}}.
      </description>
      <uniqueKey functional="true">
        <parameter ref="TID"/>
        <parameter ref="Direction"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          This parameter indicates whether the TID-to-Link mapping entry is
          enabled for Multi-Link Operation (MLO) on the access point (AP). When
          set to "true", the mapping between the specified Traffic Identifier
          (TID), direction, and required Operating Class will be active, and
          the TID-to-Link mapping policy will be applied during Multi-Link
          operations. When set to "false", the entry will be ignored.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="TID" access="readWrite">
        <description>
          The traffic identifier (TID) for this mapping. This {{param}} is a
          unique key for this table.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="OpClass" access="readWrite">
        <description>
          {{list}} The Operating class of an available channel, from
          {{bibref|802.11ax|Table E-4}}. The TID can be mapped to any link
          using a radio with a current operating class within this list.
        </description>
        <syntax>
          <list/>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Direction" access="readWrite">
        <description>
          The direction of the traffic flow from the perspective the APMLD.
          {{enum}} This {{param}} is a unique key for this table.
        </description>
        <syntax>
          <string>
            <enumeration value="Up"/>
            <enumeration value="Down"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.APMLD.{i}.TIDLinkMap.{i}."
        access="readOnly" numEntriesParameter="TIDLinkMapNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.17">
      <description>
        Table of Traffic Identifier (TID) to Link Mappings of the Multi-Link
        Operation (MLO) capable access point (AP). Each table entry describes
        the mapping between a particular TID and direction and preferred link.
        {{bibref|EasyMesh}} source: TID-to-Link Mapping Policy TLV.
      </description>
      <uniqueKey functional="true">
        <parameter ref="TID"/>
      </uniqueKey>

      <parameter name="Direction" access="readOnly">
        <description>
          The direction of the traffic flow from the perspective of the APMLD.
          {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="Up"/>
            <enumeration value="Down"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="TID" access="readOnly">
        <description>
          The traffic identifier (TID) for this mapping.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="BSSID" access="readOnly">
        <description>
          The BSSID of the preferred link (affiliated AP) to use for traffic
          with matching direction and TID values.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="LinkID" access="readOnly">
        <description>
          {{list}} The Link ID of the preferred link (affiliated AP) to use for
          traffic with matching direction and TID values.
        </description>
        <syntax>
          <list/>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="15"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.APMLD.{i}.LinkToOpClassMap.{i}."
        access="readOnly" numEntriesParameter="LinkToOpClassMapNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.19">
      <description>
        This object describes the relationship between an Affiliated AP and the
        Operating Class (OpClass) of the Radio that the Affiliated AP is
        operating on {{bibref|EasyMesh|Section 20.2.8}}.
      </description>
      <uniqueKey functional="true">
        <parameter ref="LinkID"/>
      </uniqueKey>

      <parameter name="LinkID" access="readOnly">
        <description>
          The Link ID assigned to one of the affiliated APs of this APMLD.
          {{bibref|EasyMesh|Section 17.2.96, Agent AP MLD Configuration TLV}}
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="15"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="OpClass" access="readOnly">
        <description>
          One of the current Operating Class per {{bibref|802.11ax|Table E-4}}
          that the Radio on which the Affiliated AP with the given
          {{param|LinkID}} is operating on.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.APMLD.{i}.AffiliatedAP.{i}."
        access="readOnly" numEntriesParameter="AffiliatedAPNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.17">
      <description>
        The Access Points (APs) affiliated to the AP MLD. {{bibref|EasyMesh}}
        Source: Agent AP MLD Configuration TLV.

        Counters in this object only include MLD traffic.
      </description>
      <uniqueKey functional="true">
        <parameter ref="BSSID"/>
      </uniqueKey>

      <parameter name="BSSID" access="readOnly">
        <description>
          The BSSID of the affiliated AP. This should be set to one of the
          values of {{param|##.Radio.{i}.BSS.{i}.BSSID}}. {{bibref|EasyMesh}}
          source: Agent AP MLD Configuration TLV.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="LinkID" access="readOnly">
        <description>
          The Link ID assigned to this affiliated AP. {{bibref|EasyMesh}}
          source: Agent AP MLD Configuration TLV.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="15"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RUID" access="readOnly">
        <description>
          The Radio unique identifier (RUID) of the Radio that this affiliated
          AP is operating on. {{bibref|EasyMesh}} source: Agent AP MLD
          Configuration TLV.
        </description>
        <syntax>
          <base64/>
        </syntax>
      </parameter>

      <parameter name="DisabledSubChannels" access="readOnly">
        <description>
          Disabled Subchannel Bitmap subfield from the EHT Operation element in
          transmitted Management frames. Null value or not present for
          stations. {{bibref|EasyMesh}} source: Static Puncturing Configuration
          TLV.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" access="readOnly">
        <description>
          The number of packets transmitted by the Affiliated AP. Note: this
          counter counts only MLD traffic through this BSSID, not legacy
          (non-MLD) traffic. {{bibref|EasyMesh}} source: Associated STA Traffic
          Stats TLV.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" access="readOnly">
        <description>
          The total number of packets received from the affiliated STAs by this
          Affiliated AP. {{bibref|EasyMesh}} source: Associated STA Traffic
          Stats TLV.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="UnicastBytesSent" access="readOnly">
        <description>
          Total number of unicast bytes transmitted to MLD STAs associated with
          the affiliated AP. {{bibref|EasyMesh}} source: Affiliated AP Metrics
          TLV.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="UnicastBytesReceived" access="readOnly">
        <description>
          Total number of unicast bytes received from MLD STAs associated with
          the affiliated AP. {{bibref|EasyMesh}} source: Affiliated AP Metrics
          TLV.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" access="readOnly">
        <description>
          The number of packets which could not be transmitted by the
          Affiliated AP due to errors. This counter counts only MLD traffic
          through this BSSID, not legacy (non-MLD) traffic. {{bibref|EasyMesh}}
          source: Affiliated AP Metrics TLV.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="MulticastBytesSent" access="readOnly">
        <description>
          Total multicast bytes transmitted to MLD STAs associated with the
          affiliated AP. {{bibref|EasyMesh}} source: Affiliated AP Metrics TLV.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="MulticastBytesReceived" access="readOnly">
        <description>
          Total multicast bytes received from MLD STAs associated with the
          affiliated AP. {{bibref|EasyMesh}} source: Affiliated AP Metrics TLV.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="BroadcastBytesSent" access="readOnly">
        <description>
          Total broadcast bytes transmitted to MLD STAs associated with the
          affiliated AP. {{bibref|EasyMesh}} source: Affiliated AP Metrics TLV.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="BroadcastBytesReceived" access="readOnly">
        <description>
          Total broadcast bytes received from MLD STAs associated with the
          affiliated AP. {{bibref|EasyMesh}} source: Affiliated AP Metrics TLV.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="EstServiceParametersBE" access="readOnly">
        <description>
          Estimated Service Parameters information field for AC=BE, defined per
          {{bibref|802.11-2020|Figure 9-637}} and referenced in
          {{bibref|EasyMesh|Section 17.2.22}}.
        </description>
        <syntax>
          <base64>
            <size minLength="0" maxLength="3"/>
          </base64>
        </syntax>
      </parameter>

      <parameter name="EstServiceParametersBK" access="readOnly">
        <description>
          Estimated Service Parameters information field for AC=BK, defined per
          {{bibref|802.11-2020|Figure 9-637}} and referenced in
          {{bibref|EasyMesh|Section 17.2.22}}.
        </description>
        <syntax>
          <base64>
            <size minLength="0" maxLength="3"/>
          </base64>
        </syntax>
      </parameter>

      <parameter name="EstServiceParametersVI" access="readOnly">
        <description>
          Estimated Service Parameters information field for AC=VI, defined per
          {{bibref|802.11-2020|Figure 9-637}} and referenced in
          {{bibref|EasyMesh|Section 17.2.22}}.
        </description>
        <syntax>
          <base64>
            <size minLength="0" maxLength="3"/>
          </base64>
        </syntax>
      </parameter>

      <parameter name="EstServiceParametersVO" access="readOnly">
        <description>
          Estimated Service Parameters information field for AC=VO, defined per
          {{bibref|802.11-2020|Figure 9-637}} and referenced in
          {{bibref|EasyMesh|Section 17.2.22}}.
        </description>
        <syntax>
          <base64>
            <size minLength="0" maxLength="3"/>
          </base64>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.APMLD.{i}.STAMLD.{i}."
        access="readOnly" numEntriesParameter="STAMLDNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.17">
      <description>
        This object describes Multi-Link Operation (MLO) capable stations
        (STAs), also known as client Multilink Devices (MLDs), associated to
        this MLO capable Access Point. {{bibref|EasyMesh}} source: Associated
        Clients TLV.
      </description>
      <uniqueKey functional="true">
        <parameter ref="MLDMACAddress"/>
      </uniqueKey>

      <parameter name="MLDMACAddress" access="readOnly">
        <description>
          The Multi-Link Device (MLD) MAC Address of the client MLD STA.
          {{bibref|EasyMesh}} source: Associated STA MLD Configuration Report
          TLV.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="Hostname" access="readOnly">
        <description>
          The Hostname for the client MLD STA.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="IPv4Address" access="readOnly">
        <description>
          The IPv4 address allocated to the MLD MAC Address of this device.
        </description>
        <syntax>
          <dataType ref="IPv4Address"/>
        </syntax>
      </parameter>

      <parameter name="IPv6Address" access="readOnly">
        <description>
          The IPv6 address allocated to the MLD MAC Address of this device.
        </description>
        <syntax>
          <dataType ref="IPv6Address"/>
        </syntax>
      </parameter>

      <parameter name="IsbSTA" access="readOnly">
        <description>
          Indicates if the client MLD STA is a backhaul MLD STA (bSTAMLD). This
          is useful when the same AP MLD has both client MLD and bSTAMLDs
          associated. {{bibref|EasyMesh}} source: Backhaul STA MLD
          Configuration TLV.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="LastConnectTime" access="readOnly">
        <description>
          The time in {{units}} since this client MLD STA was associated.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="BytesSent" access="readOnly">
        <description>
          The total number of bytes transmitted to the client MLD STA.
          {{bibref|EasyMesh}} source: Associated STA Traffic Stats TLV.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" access="readOnly">
        <description>
          The total number of bytes received from the client MLD STA.
          {{bibref|EasyMesh}} source: Associated STA Traffic Stats TLV.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" access="readOnly">
        <description>
          The total number of packets transmitted to the client MLD STA.
          {{bibref|EasyMesh}} source: Associated STA Traffic Stats TLV.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" access="readOnly">
        <description>
          The total number of packets received from the client MLD STA.
          {{bibref|EasyMesh}} source: Associated STA Traffic Stats TLV.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" access="readOnly">
        <description>
          The number of packets which could not be transmitted to the client
          MLD STA due to errors. {{bibref|EasyMesh}} source: Associated STA
          Traffic Stats TLV.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" access="readOnly">
        <description>
          The number of packets which were received with error from the client
          MLD STA. {{bibref|EasyMesh}} source: Associated STA Traffic Stats
          TLV.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="RetransCount" access="readOnly">
        <description>
          The number of packets transmitted with the retry flag sent to the
          client MLD STA. {{bibref|EasyMesh}} source: Associated STA Traffic
          Stats TLV.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="PairwiseAKM" access="readOnly" version="2.19">
        <description>
          Pairwise AKM suite selector selected by the STAMLD. The Pairwise AKM
          suite selector (OUI and type) is encoded as a 4-octet hex-encoded
          value without internal delimiters, e.g. 506F9A02
          {{bibref|802.11-2020|Table 9-151}}.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="4" maxLength="4"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="PairwiseCipher" access="readOnly" version="2.19">
        <description>
          Pairwise AKM cipher selector selected by the STAMLD. The Pairwise AKM
          cipher selector (OUI and type) is encoded as a 4-octet hex-encoded
          value without internal delimiters, e.g. 506F9A02
          {{bibref|802.11-2020|Table 9-149}}.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="4" maxLength="4"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="RSNCapabilities" access="readOnly" version="2.19">
        <description>
          The RSN Capabilities selected by the STAMLD during association
          {{bibref|802.11-2020|Section 9.4.2.24.4}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

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

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

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.APMLD.{i}.STAMLD.{i}.WiFi7Capabilities."
        access="readOnly" version="2.17">
      <description>
        This object describes the Wi-Fi 7 capabilities for this STAMLD
        including Multi-Link Operation (MLO) capabilities. {{bibref|EasyMesh}}
        Source: Wi-Fi 7 Agent Capabilities TLV.
      </description>

      <parameter name="EMLMRSupport" access="readOnly">
        <description>
          Indicates if the Enhanced Multi-Link Multi-Radio (EMLMR) operation is
          supported by this STAMLD.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="EMLSRSupport" access="readOnly">
        <description>
          Indicates if Enhanced Multi-Link Single-Radio (EMLSR) operation is
          supported by this STAMLD.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="STRSupport" access="readOnly">
        <description>
          Indicates if Simultaneous Transmit and Receive (STR) operation is
          supported by this STAMLD.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="NSTRSupport" access="readOnly">
        <description>
          Indicates if Non-Simultaneous Transmit and Receive (NSTR) operation
          is supported by this STAMLD.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="TIDLinkMapNegotiation" access="readOnly">
        <description>
          Indicates if Traffic Identifier (TID) to Link Mapping Negotiation is
          supported by this STAMLD.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.APMLD.{i}.STAMLD.{i}.STAMLDConfig."
        access="readOnly" minEntries="1" maxEntries="1" version="2.17">
      <description>
        This object describes the Wi-Fi 7 Multi-Link Operation (MLO)
        configuration of the Multi-Link Device (MLD) station (STA, also called
        associated device). Note this may differ from the WiFi7 capabilities of
        the device. {{bibref|EasyMesh}} source: Associated STA MLD
        Configuration Report TLV.
      </description>

      <parameter name="EMLMREnabled" access="readOnly">
        <description>
          Indicates if the Enhanced Multi-Link Multi-Radio (EMLMR) operation is
          enabled.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="EMLSREnabled" access="readOnly">
        <description>
          Indicates if Enhanced Multi-Link Single-Radio (EMLSR) operation is
          enabled.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="STREnabled" access="readOnly">
        <description>
          Indicates if Simultaneous Transmit and Receive (STR) operation is
          enabled.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="NSTREnabled" access="readOnly">
        <description>
          Indicates if Non-Simultaneous Transmit and Receive (NSTR) operation
          is enabled.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="TIDLinkMapNegotiation" access="readOnly">
        <description>
          Indicates if Traffic Identifier (TID) to Link Mapping Negotiation is
          enabled. {{bibref|EasyMesh}} source: TID-to-Link Mapping Policy TLV.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.APMLD.{i}.STAMLD.{i}.STATIDLinkMap.{i}."
        access="readOnly" numEntriesParameter="STATIDLinkMapNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.17">
      <description>
        Table of Traffic Identifier (TID) to Link Mappings of the Multi-Link
        Operation (MLO) capable station (STA). Each table entry describes the
        mapping between a particular TID and direction and preferred link.
        {{bibref|EasyMesh}} source: TID-to-Link Mapping Policy TLV.
      </description>
      <uniqueKey functional="true">
        <parameter ref="TID"/>
      </uniqueKey>

      <parameter name="Direction" access="readOnly">
        <description>
          The direction of the traffic flow from the perspective of the APMLD.
          {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="Up"/>
            <enumeration value="Down"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="TID" access="readOnly">
        <description>
          The traffic identifier (TID) for this mapping.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="BSSID" access="readOnly">
        <description>
          The BSSID of the preferred link (affiliated AP) to use for traffic
          with matching direction and TID values.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="LinkID" access="readOnly">
        <description>
          {{list}} The Link ID of the preferred link (affiliated AP) to use for
          traffic with matching direction and TID values.
        </description>
        <syntax>
          <list/>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="15"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.APMLD.{i}.STAMLD.{i}.AffiliatedSTA.{i}."
        access="readOnly" numEntriesParameter="AffiliatedSTANumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.17">
      <description>
        This object describes stations (STAs, also called associated devices)
        that are affiliated to this Multi-Link Device (MLD) STA.
        {{bibref|EasyMesh}} source: Associated STA MLD Configuration TLV.
      </description>
      <uniqueKey functional="true">
        <parameter ref="MACAddress"/>
      </uniqueKey>

      <parameter name="MACAddress" access="readOnly">
        <description>
          The MAC address of the affiliated STA. {{bibref|EasyMesh}} source:
          Associated STA MLD Configuration Report TLV.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="BSSID" access="readOnly">
        <description>
          The BSSID of the affiliated AP that the affiliated STA is associated
          to. {{bibref|EasyMesh}} source: Associated STA MLD Configuration
          Report TLV.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="BytesSent" access="readOnly">
        <description>
          The total number of bytes transmitted to the affiliated STA.
          {{bibref|EasyMesh}} source: Associated STA Traffic Stats TLV.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" access="readOnly">
        <description>
          The total number of bytes received from the affiliated STA.
          {{bibref|EasyMesh}} source: Associated STA Traffic Stats TLV.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" access="readOnly">
        <description>
          The total number of packets transmitted to the affiliated STA.
          {{bibref|EasyMesh}} source: Associated STA Traffic Stats TLV.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" access="readOnly">
        <description>
          The total number of packets received from the affiliated STA.
          {{bibref|EasyMesh}} source: Associated STA Traffic Stats TLV.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" access="readOnly">
        <description>
          The number of packets which could not be transmitted to the
          affiliated STA due to errors. {{bibref|EasyMesh}} source: Associated
          STA Traffic Stats TLV.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="SignalStrength" access="readOnly">
        <description>
          An indicator of radio signal strength of the uplink from the
          affiliated STA to the access point - measured in {{units}}. RCPI is
          encoded per {{bibref|802.11-2020|Table 9-176}}, and described in
          {{bibref|EasyMesh|Section 10.3.1}}). Reserved: 221 - 255.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
            <units value="dBm"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="EstMACDataRateDownlink" access="readOnly">
        <description>
          Estimate of the MAC layer throughput in {{units}} achievable in the
          downlink direction if 100% of channel airtime and BSS operating
          bandwidth were available, as defined in {{bibref|EasyMesh|Section
          10.3.1}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="EstMACDataRateUplink" access="readOnly">
        <description>
          Estimate of the MAC layer throughput in {{units}} achievable in the
          uplink direction if 100% of channel airtime and BSS operating
          bandwidth were available, as defined in {{bibref|EasyMesh|Section
          10.3.1}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LastDataDownlinkRate" access="readOnly">
        <description>
          The data transmit rate in {{units}} that was most recently used for
          transmission of data from the access point to the affiliated STA.
        </description>
        <syntax>
          <unsignedInt>
            <units value="kbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LastDataUplinkRate" access="readOnly">
        <description>
          The data transmit rate in {{units}} that was most recently used for
          transmission of data from the affiliated STA to the access point.
        </description>
        <syntax>
          <unsignedInt>
            <units value="kbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="UtilizationReceive" access="readOnly">
        <description>
          The amount of time in {{units}} that the APMLD Radio has spent on the
          channel receiving data from the affiliated STA.
        </description>
        <syntax>
          <unsignedLong>
            <units value="milliseconds"/>
          </unsignedLong>
        </syntax>
      </parameter>

      <parameter name="UtilizationTransmit" access="readOnly">
        <description>
          The amount of time in {{units}} that the APMLD Radio has spent on the
          channel transmitting data to the affiliated STA.
        </description>
        <syntax>
          <unsignedLong>
            <units value="milliseconds"/>
          </unsignedLong>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.DataElements.Network.Device.{i}.bSTAMLD."
        access="readOnly" minEntries="1" maxEntries="1" version="2.17"
        dmr:noNameCheck="true">
      <description>
        This object represents the Multi-Link Operation (MLO) capable backhaul
        station (bSTA) operating on this EasyMesh Agent. Only one MLO capable
        bSTA per EasyMesh Agent is allowed. {{bibref|EasyMesh}} source:
        Backhaul STA MLD Configuration TLV.
      </description>

      <parameter name="MLDMACAddress" access="readOnly">
        <description>
          The Multi-Link Device (MLD) MAC Address of the MLO Capable bSTA.
          {{bibref|EasyMesh}} Source: Backhaul STA MLD Configuration TLV.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="BSSID" access="readOnly">
        <description>
          The MLD MAC address of the upstream APMLD that this bSTAMLD is
          associated to. {{bibref|EasyMesh}} source: Associated Clients TLV.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="AffiliatedbSTAList" access="readOnly">
        <description>
          {{list}} backhaul STA MAC addresses affiliated to this bSTAMLD.
          {{bibref|EasyMesh}} source: Backhaul STA MLD Configuration TLV.
        </description>
        <syntax>
          <list/>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.Network.Device.{i}.bSTAMLD.bSTAMLDConfig."
        access="readOnly" minEntries="1" maxEntries="1" version="2.17"
        dmr:noNameCheck="true">
      <description>
        This object describes the Multi-Link Operation (MLO) configuration of a
        Multi-Link Device (MLD) backhaul STA (bSTA). {{bibref|EasyMesh}}
        source: Backhaul STA MLD Configuration TLV.
      </description>

      <parameter name="EMLMREnabled" access="readWrite">
        <description>
          Indicates if the Enhanced Multi-Link Multi-Radio (EMLMR) operation is
          enabled.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="EMLSREnabled" access="readWrite">
        <description>
          Indicates if Enhanced Multi-Link Single-Radio (EMLSR) operation is
          enabled.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="STREnabled" access="readWrite">
        <description>
          Indicates if Simultaneous Transmit and Receive (STR) operation is
          enabled.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="NSTREnabled" access="readWrite">
        <description>
          Indicates if Non-Simultaneous Transmit and Receive (NSTR) operation
          is enabled.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="TIDLinkMapNegotiation" access="readWrite">
        <description>
          Indicates if Traffic Identifier (TID) to Link Mapping Negotiation is
          enabled. {{bibref|EasyMesh}} source: TID-to-Link Mapping Policy TLV.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.DataElements.AssociationEvent."
        access="readOnly" minEntries="1" maxEntries="1" version="2.13">
      <description>
        This object contains the events generated when a STA associates to a
        BSS.
      </description>

      <parameter name="AssociationEventDataNumberOfEntries" access="readOnly"
          status="obsoleted">
        <description>
          {{numentries}}

          {{deprecated|2.17|because a corresponding USP event is defined
          instead}}

          {{obsoleted|2.19}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.AssociationEvent.AssociationEventData.{i}."
        access="readOnly"
        numEntriesParameter="AssociationEventDataNumberOfEntries"
        minEntries="0" maxEntries="unbounded" dmr:noUniqueKeys="true"
        version="2.13" status="obsoleted">
      <description>
        The events generated when an Associated Device (STA) associates to a
        BSS.

        {{deprecated|2.17|because a corresponding USP event is defined
        instead}}

        {{obsoleted|2.19}}
      </description>

      <parameter name="TimeStamp" access="readOnly">
        <description>
          The time this event happened. Formatted with the date-and-time string
          format as defined in {{bibref|RFC3339|Section 3}}.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="BSSID" access="readOnly">
        <description>
          If a MLD, the MAC Address of the AP MLD, otherwise the MAC Address of
          the logical BSS (BSSID) which is reporting the Association Event.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="MACAddress" access="readOnly">
        <description>
          If a MLD, the MAC Address of the Client MLD, otherwise the MAC
          Address of the Associated Device (STA).
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="StatusCode" access="readOnly">
        <description>
          The status code sent to the Associated Device (STA) in the
          Association Response frame as defined by {{bibref|802.11-2020|Table
          9-50}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="HTCapabilities" access="readOnly">
        <description>
          Describes the HT capabilities of the Associated Device (STA).
        </description>
        <syntax>
          <base64>
            <size minLength="1" maxLength="1"/>
          </base64>
        </syntax>
      </parameter>

      <parameter name="VHTCapabilities" access="readOnly">
        <description>
          Describes the VHT capabilities of the Associated Device (STA).
        </description>
        <syntax>
          <base64>
            <size minLength="2" maxLength="6"/>
          </base64>
        </syntax>
      </parameter>

      <parameter name="HECapabilities" access="readOnly" status="deleted">
        <description>
          Describes the HE capabilities of the Associated Device (STA).

          {{deprecated|2.16|because it is superseded by
          {{object|WiFi6Capabilities}}.}}

          {{obsoleted|2.18}}

          {{deleted|2.19}}
        </description>
        <syntax>
          <base64>
            <size minLength="4" maxLength="14"/>
          </base64>
        </syntax>
      </parameter>

      <parameter name="ClientCapabilities" access="readOnly" version="2.16">
        <description>
          The frame body of the (Re)Association Request frame received from
          this client (STA), as defined in Table 9-34 and Table 9-36 of
          {{bibref|802.11-2020}} in the order of the underlying referenced
          standard.
        </description>
        <syntax>
          <base64/>
        </syntax>
      </parameter>

      <parameter name="OpClass" access="readOnly" version="2.19">
        <description>
          Operating class in use at the time of this event, from
          {{bibref|802.11ax|Table E-4}}. May be determined from
          {{bibref|EasyMesh|Table 17.2.17, Operating Channel Report TLV}} and
          the Supported Operating Classes element in {{bibref|EasyMesh|Table
          17.2.19, Client Capability Report TLV}}. For Multi-Link Operation
          (MLO) this is the operating class over which association messaging
          had occurred.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Channel" access="readOnly" version="2.19">
        <description>
          The single channel number of the channel in use at the time of this
          event. May be determined from {{bibref|EasyMesh|Table 17.2.17,
          Operating Channel Report TLV}} and the Supported Operating Classes
          element in {{bibref|EasyMesh|Table 17.2.19, Client Capability Report
          TLV}}. For Multi-Link Operation (MLO) this is the channel over which
          association messaging had occurred.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.AssociationEvent.AssociationEventData.{i}.WiFi6Capabilities."
        access="readOnly" minEntries="1" maxEntries="1" version="2.15"
        status="obsoleted">
      <description>
        Describes the Wi-Fi 6 capabilities of the Associated Device (STA).

        {{deprecated|2.17|because a corresponding USP event is defined
        instead}}

        {{obsoleted|2.19}}
      </description>

      <parameter name="HE160" access="readOnly">
        <description>
          Indicates support for High Efficiency (HE) 160 MHz.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="HE8080" access="readOnly">
        <description>
          Indicates support for HE 80+80 MHz.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MCSNSS" access="readOnly">
        <description>
          Supported High Efficiency-Modulation and Coding Scheme (HE-MCS) and
          Number of Spatial Streams (NSS) Set field as defined in
          {{bibref|802.11ax|Figure 9-788d}} Supported HE-MCS And NSS Set field
          format. HE-MCS And NSS Set field for 160MHz is present if 160MHz is
          supported. HE-MCS And NSS Set field for 80+80MHz is present if
          80+80MHz is supported.
        </description>
        <syntax>
          <base64>
            <size minLength="4" maxLength="12"/>
          </base64>
        </syntax>
      </parameter>

      <parameter name="SUBeamformer" access="readOnly">
        <description>
          Indicates support for Single-User (SU) Beamformer.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="SUBeamformee" access="readOnly">
        <description>
          Indicates support for SU Beamformee.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MUBeamformer" access="readOnly">
        <description>
          Indicates support for Multi-User (MU) Beamformer.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Beamformee80orLess" access="readOnly">
        <description>
          Indicates support for Beamformee Space-Time Stream (STS) ≤ 80 MHz.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BeamformeeAbove80" access="readOnly">
        <description>
          Indicates support for Beamformee STS &gt; 80 MHz.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="ULMUMIMO" access="readOnly">
        <description>
          Indicates support for Uplink (UL) Multi-User Multiple Input, Multiple
          Output (MU-MIMO).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="ULOFDMA" access="readOnly">
        <description>
          Indicates support for UL Orthogonal Frequency Division Multiplexing
          (OFDMA).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="DLOFDMA" access="readOnly" version="2.17">
        <description>
          Indicates support for Downlink (DL) Orthogonal Frequency Division
          Multiplexing (OFDMA).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MaxDLMUMIMO" access="readOnly">
        <description>
          Max number of users supported per DL MU-MIMO Transmitter (TX) in the
          BSS role.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MaxULMUMIMO" access="readOnly">
        <description>
          Max number of users supported per UL MU-MIMO Receiver (RX) in the BSS
          role.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MaxDLOFDMA" access="readOnly">
        <description>
          Max number of users supported per Downlink (DL) OFDMA TX in the BSS
          role.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MaxULOFDMA" access="readOnly">
        <description>
          Max number of users supported per UL OFDMA RX in the BSS role.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RTS" access="readOnly">
        <description>
          Indicates support for Request To Send (RTS).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MURTS" access="readOnly">
        <description>
          Indicates support for MU RTS.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MultiBSSID" access="readOnly">
        <description>
          Indicates support for Multi-Basic Service Set Identifier (BSSID).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MUEDCA" access="readOnly">
        <description>
          Indicates support for MU Enhanced distributed channel access (EDCA).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="TWTRequestor" access="readOnly">
        <description>
          Indicates support for Target Wake Time (TWT) Requestor.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="TWTResponder" access="readOnly">
        <description>
          Indicates support for TWT Responder.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="SpatialReuse" access="readOnly">
        <description>
          Indicates support for EasyMesh configuration and reporting of BSS
          Color and Spatial Reuse.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="AnticipatedChannelUsage" access="readOnly">
        <description>
          Indicates support for Anticipated Channel Usage (ACU) reporting.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.DataElements.DisassociationEvent."
        access="readOnly" minEntries="1" maxEntries="1" version="2.13">
      <description>
        This object contains the events generated when an Associated Device
        (STA) disassociates from a BSS.
      </description>

      <parameter name="DisassociationEventDataNumberOfEntries"
          access="readOnly" status="obsoleted">
        <description>
          {{numentries}}

          {{deprecated|2.17|because a corresponding USP event is defined
          instead}}

          {{obsoleted|2.19}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.DisassociationEvent.DisassociationEventData.{i}."
        access="readOnly"
        numEntriesParameter="DisassociationEventDataNumberOfEntries"
        minEntries="0" maxEntries="unbounded" dmr:noUniqueKeys="true"
        version="2.13" status="obsoleted">
      <description>
        The events generated when an Associated Device (STA) disassociates from
        a BSS.

        {{deprecated|2.17|because a corresponding USP event is defined
        instead}}

        {{obsoleted|2.19}}
      </description>

      <parameter name="BSSID" access="readOnly">
        <description>
          If a MLD, the MAC Address of the AP MLD, otherwise the MAC Address of
          the logical BSS (BSSID) which is reporting the Disassociation Event.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="MACAddress" access="readOnly">
        <description>
          If a MLD, the MAC Address of the Client MLD, otherwise the MAC
          Address of the Associated Device (STA).
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="ReasonCode" access="readOnly">
        <description>
          The Reason Code received by the AP from the Associated Device (STA)
          in the most recent Disassociation or Deauthentication frame or sent
          by the AP to the Associated Device (STA) in the most recent
          Disassociation or Deauthentication frame as defined in
          {{bibref|802.11-2020|Table 9-49}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="BytesSent" access="readOnly">
        <description>
          The total number of bytes transmitted to the Associated Device (STA).

          For Multi-AP Agents that implement Profile-1, the units of this
          counter are Bytes. Otherwise, the units of this counter are as
          specified by
          {{param|Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.ByteCounterUnits}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" access="readOnly">
        <description>
          The total number of bytes received from the Associated Device (STA).

          For Multi-AP Agents that implement Profile-1, the units of this
          counter are Bytes. Otherwise, the units of this counter are as
          specified by
          {{param|Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.ByteCounterUnits}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" access="readOnly">
        <description>
          The total number of packets transmitted to the Associated Device
          (STA).
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" access="readOnly">
        <description>
          The total number of packets received from the Associated Device
          (STA).
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" access="readOnly">
        <description>
          The total number of outbound packets that could not be transmitted to
          the Associated Device (STA) because of errors. These might be due to
          the number of retransmissions exceeding the retry limit or from other
          causes.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" access="readOnly">
        <description>
          The total number of inbound packets from the Associated Device (STA)
          that contained errors preventing them from being delivered to a
          higher-layer protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="RetransCount" access="readOnly">
        <description>
          The total number of transmitted packets to the Associated Device
          (STA) which were retransmissions.

          N retransmissions of the same packet results in this counter
          incrementing by N.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="TimeStamp" access="readOnly">
        <description>
          The time this event happened. Formatted with the date-and-time string
          format as defined in {{bibref|RFC3339|Section 3}}.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="LastDataDownlinkRate" access="readOnly" version="2.17">
        <description>
          The data transmit rate in {{units}} that was most recently used for
          transmission of data from the access point to the Associated Device
          (STA).
        </description>
        <syntax>
          <unsignedInt>
            <units value="kbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LastDataUplinkRate" access="readOnly" version="2.17">
        <description>
          The data transmit rate in {{units}} that was most recently used for
          transmission of data from the Associated Device (STA) to the access
          point.
        </description>
        <syntax>
          <unsignedInt>
            <units value="kbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="UtilizationReceive" access="readOnly" version="2.17">
        <description>
          The amount of time in {{units}} that the Radio has spent on the
          Channel receiving data from the Associated Device (STA).
        </description>
        <syntax>
          <unsignedLong>
            <units value="milliseconds"/>
          </unsignedLong>
        </syntax>
      </parameter>

      <parameter name="UtilizationTransmit" access="readOnly" version="2.17">
        <description>
          The amount of time in {{units}} that the Radio has spent on the
          Channel transmitting data to the Associated Device (STA).
        </description>
        <syntax>
          <unsignedLong>
            <units value="milliseconds"/>
          </unsignedLong>
        </syntax>
      </parameter>

      <parameter name="EstMACDataRateDownlink" access="readOnly"
          version="2.17">
        <description>
          Estimate of the MAC layer throughput in {{units}} achievable in the
          downlink direction to the Associated Device (STA) if 100% of channel
          airtime and BSS operating bandwidth were available, as defined in
          {{bibref|EasyMesh|Section 10.3.1}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="EstMACDataRateUplink" access="readOnly" version="2.17">
        <description>
          Estimate of the MAC layer throughput in {{units}} achievable in the
          uplink direction from the Associated Device (STA) if 100% of channel
          airtime and BSS operating bandwidth were available, as defined in
          {{bibref|EasyMesh|Section 10.3.1}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SignalStrength" access="readOnly" version="2.17">
        <description>
          An indicator of radio signal strength of the uplink from the
          Associated Device (STA) to the access point - measured in {{units}}.
          RCPI is encoded per {{bibref|802.11-2020|Table 9-176}}, and described
          in {{bibref|EasyMesh|Section 10.3.1}}). Reserved: 221 - 255.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
            <units value="dBm"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LastConnectTime" access="readOnly" version="2.17">
        <description>
          The time in {{units}} since this Associated Device (STA) was
          associated.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Noise" access="readOnly" version="2.17">
        <description>
          An indicator of the average radio noise plus interference power at
          the access point measured for the primary operating channel to this
          Associated Device (STA).

          Encoded as defined for ANPI in {{bibref|802.11-2020|Section
          11.10.9.4}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="InitiatedBy" access="readOnly" version="2.17">
        <description>
          This parameter indicates the entity that initiated this
          Disassociation Event. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="STA"/>
            <enumeration value="EasyMesh_Agent"/>
            <enumeration value="EasyMesh_Controller"/>
            <enumeration value="DE_Collector"/>
            <enumeration value="Unknown"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="OpClass" access="readOnly" version="2.19">
        <description>
          Operating class in use at the time of this event, from
          {{bibref|802.11ax|Table E-4}}. May be determined from
          {{bibref|EasyMesh|Table 17.2.17, Operating Channel Report TLV}} and
          the Supported Operating Classes element in {{bibref|EasyMesh|Table
          17.2.19, Client Capability Report TLV}}. For Multi-Link Operation
          (MLO) this is the operating class over which association messaging
          had occurred.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Channel" access="readOnly" version="2.19">
        <description>
          The single channel number of the channel in use at the time of this
          event. May be determined from {{bibref|EasyMesh|Table 17.2.17,
          Operating Channel Report TLV}} and the Supported Operating Classes
          element in {{bibref|EasyMesh|Table 17.2.19, Client Capability Report
          TLV}}. For Multi-Link Operation (MLO) this is the channel over which
          association messaging had occurred.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.DataElements.FailedConnectionEvent."
        access="readOnly" minEntries="1" maxEntries="1" version="2.15">
      <description>
        This object contains the events generated when a Station (STA) fails to
        connect to a Basic Service Set (BSS).
      </description>

      <parameter name="FailedConnectionEventDataNumberOfEntries"
          access="readOnly" status="obsoleted">
        <description>
          {{numentries}}

          {{deprecated|2.17|because a corresponding USP event is defined
          instead}}

          {{obsoleted|2.19}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WiFi.DataElements.FailedConnectionEvent.FailedConnectionEventData.{i}."
        access="readOnly"
        numEntriesParameter="FailedConnectionEventDataNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.15"
        dmr:noUniqueKeys="true" status="obsoleted">
      <description>
        This object describes the data provided with a failed connection event

        {{deprecated|2.17|because a corresponding USP event is defined
        instead}}

        {{obsoleted|2.19}}
      </description>

      <parameter name="BSSID" access="readOnly" version="2.17">
        <description>
          The MAC Address of the logical BSS (BSSID) which is reporting the
          failed connection event.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="MACAddress" access="readOnly">
        <description>
          MAC Address identifying the associated device (STA) that has
          attempted to connect.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="StatusCode" access="readOnly">
        <description>
          Status Code set to a non-zero value that indicates the reason for
          association or authentication failure as defined in
          {{bibref|802.11-2020|Table 9-50}}, or Status Code set to zero and
          {{param|ReasonCode}} provided.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ReasonCode" access="readOnly">
        <description>
          Reason Code indicating the reason the STA was disassociated or
          deauthenticated as defined in {{bibref|802.11-2020|Table 9-49}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="TimeStamp" access="readOnly">
        <description>
          The time this event happened. Formatted with the date-and-time string
          format as defined in {{bibref|RFC3339|Section 3}}.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.Radio.{i}." access="readOnly"
        numEntriesParameter="RadioNumberOfEntries" minEntries="0"
        maxEntries="unbounded" dmr:fixedObject="true" version="2.0">
      <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 interface.

          This parameter is based on ''ifAdminStatus'' from {{bibref|RFC2863}}.

          If the instance of this {{object}} is the same as
          {{object|Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}}},
          then this parameter is the same as
          {{param|Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.Enabled}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status">
        <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}}.

          Because the interface includes layer 1, the {{enum|LowerLayerDown}}
          value SHOULD never be used.
        </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" version="2.0">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name">
        <description>
          The textual name of the interface as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" 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="MaxBitRate">
        <description>
          The maximum upstream and downstream PHY bit rate supported by this
          interface (expressed in {{units}}).
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Upstream">
        <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.

          An interface might have some SSIDs pointing towards the Internet and
          other SSIDs pointing towards End Devices. This is indicated by the
          associated {{param|#.SSID.{i}.Upstream}} parameters. This interface's
          {{param}} parameter is set to {{true}} if any of the associated
          ''SSID.{i}.Upstream'' parameters are {{true}}, and is set to
          {{false}} otherwise.

          This parameter was DEPRECATED in 2.12 (and then OBSOLETED in 2.14)
          because it couldn't describe all multi-SSID use cases. It has now
          been restored, and its multi-SSID behavior has been clarified.
        </description>
        <syntax>
          <boolean/>
        </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"/>
            <enumeration value="6GHz" version="2.16"/>
          </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}}, {{enum|ax}}, {{enum|be}} are allowed.

          If {{param|OperatingFrequencyBand}} is set to
          {{enum|5GHz|OperatingFrequencyBand}}, only values {{enum|a}},
          {{enum|n}}, {{enum|ac}}, {{enum|ax}}, {{enum|be}} are allowed.

          If {{param|OperatingFrequencyBand}} is set to
          {{enum|6GHz|OperatingFrequencyBand}}, only values {{enum|ax}},
          {{enum|be}} 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>
            <enumeration value="ac">
              <description>{{bibref|802.11ac-2013}}</description>
            </enumeration>
            <enumeration value="ax">
              <description>{{bibref|802.11ax}}</description>
            </enumeration>
            <enumeration value="be" version="2.17">
              <description>{{bibref|802.11be}}</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}}, {{enum|ax}}, {{enum|be}} are allowed.

          If {{param|OperatingFrequencyBand}} is set to
          {{enum|5GHz|OperatingFrequencyBand}}, only values {{enum|a}},
          {{enum|n}}, {{enum|ac}}, {{enum|ax}}, {{enum|be}} are allowed.

          If {{param|OperatingFrequencyBand}} is set to
          {{enum|6GHz|OperatingFrequencyBand}}, only values {{enum|ax}},
          {{enum|be}} 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, ac, ax, be) 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.

          For channels in "wide mode" (802.11n where a 40MHz channel bandwidth
          is used), this parameter is used for Primary Channel only. The
          secondary or extension channel information is available through
          {{param|ExtensionChannel}}.

          Note: Valid {{param}} values depend on the
          {{param|OperatingFrequencyBand}} value specified and the
          {{param|RegulatoryDomain}}.

          If the instance of this {{object}} is the same as
          {{object|Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.}},
          then this parameter is the same as
          {{param|Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.CurrentOperatingClassProfile.{i}.Channel}}.
        </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="ChannelLastChange" access="readOnly"
          activeNotify="canDeny" version="2.12">
        <description>
          The accumulated time in {{units}} since the current {{param|Channel}}
          came into use.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ChannelLastSelectionReason" access="readOnly"
          version="2.12">
        <description>
          The cause of the last channel selection.
        </description>
        <syntax>
          <string>
            <enumeration value="Manual">
              <description>
                Manual selection of the {{param|Channel}}.
              </description>
            </enumeration>
            <enumeration value="Auto_Startup">
              <description>
                Automatic channel selection procedure launched at radio
                startup.
              </description>
            </enumeration>
            <enumeration value="Auto_User">
              <description>
                Automatic channel selection procedure triggered by the user
                (e.g. via a GUI).
              </description>
            </enumeration>
            <enumeration value="Auto_Refresh">
              <description>
                Automatic channel selection procedure triggered by the
                {{param|AutoChannelRefreshPeriod}} timer.
              </description>
            </enumeration>
            <enumeration value="Auto_Dynamic">
              <description>
                Automatic channel selection procedure dynamically triggered to
                adjust to environmental interference.
              </description>
            </enumeration>
            <enumeration value="Auto_DFS">
              <description>
                Automatic channel selection procedure triggered by Dynamic
                Frequency Selection (DFS) {{bibref|ETSIBRAN}}.
              </description>
            </enumeration>
            <enumeration value="Unknown"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="MaxSupportedSSIDs" access="readOnly" version="2.12">
        <description>
          Maximum number of SSIDs supported on this radio.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MaxSupportedAssociations" access="readOnly"
          version="2.12">
        <description>
          Maximum number of associated devices supported.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="FirmwareVersion" access="readOnly" version="2.12">
        <description>
          This radio's WiFi firmware version.

          If the instance of this {{object|##}} is the same as
          {{object|Device.WiFi.DataElements.Network.Device.{i}.}}, then this
          parameter is the same as
          {{param|Device.WiFi.DataElements.Network.Device.{i}.SoftwareVersion}}.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SupportedOperatingChannelBandwidths" access="readOnly"
          version="2.12">
        <description>
          {{list}} These are the valid writable values for
          {{param|OperatingChannelBandwidth}}.

          Each list item is an enumeration of: {{enum}}
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="20MHz"/>
            <enumeration value="40MHz">
              <description>wide mode</description>
            </enumeration>
            <enumeration value="80MHz">
              <description>802.11ac, 802.11ax and 802.11be only</description>
            </enumeration>
            <enumeration value="160MHz">
              <description>802.11ac, 802.11ax and 802.11be only</description>
            </enumeration>
            <enumeration value="80+80MHz">
              <description>802.11ac, 802.11ax and 802.11be only</description>
            </enumeration>
            <enumeration value="320MHz-1" version="2.17">
              <description>
                802.11be only - channel center frequency 31, 95, 159
              </description>
            </enumeration>
            <enumeration value="320MHz-2" version="2.17">
              <description>
                802.11be only - channel center frequency 63, 127, 191
              </description>
            </enumeration>
            <enumeration value="Auto"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="OperatingChannelBandwidth" access="readWrite">
        <description>
          The preferred channel bandwidth to be used (applicable to 802.11n,
          802.11ac, 802.11ax and 802.11be specifications only).
        </description>
        <syntax>
          <string>
            <enumerationRef targetParam="SupportedOperatingChannelBandwidths"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="CurrentOperatingChannelBandwidth" access="readOnly"
          version="2.11">
        <description>
          The channel bandwidth currently in use. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="20MHz"/>
            <enumeration value="40MHz"/>
            <enumeration value="80MHz"/>
            <enumeration value="160MHz"/>
            <enumeration value="80+80MHz"/>
            <enumeration value="320MHz-1" version="2.17"/>
            <enumeration value="320MHz-2" version="2.17"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ExtensionChannel" access="readWrite">
        <description>
          The secondary extension channel position (applicable to the 802.11n
          specification only), 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.
        </description>
        <syntax>
          <string>
            <enumeration value="400nsec">
              <description>
                applicable to 802.11n, 802.11ac and 802.11be specifications
                only
              </description>
            </enumeration>
            <enumeration value="800nsec">
              <description>
                applicable to 802.11n, 802.11ac and 802.11be specifications
                only
              </description>
            </enumeration>
            <enumeration value="1xLTF_0.8us" version="2.14">
              <description>
                applicable to 802.11ax and 802.11be specifications only
              </description>
            </enumeration>
            <enumeration value="1xLTF_1.6us" version="2.14">
              <description>
                applicable to 802.11ax and 802.11be specifications only
              </description>
            </enumeration>
            <enumeration value="2xLTF_0.8us" version="2.14">
              <description>
                applicable to 802.11ax and 802.11be specifications only
              </description>
            </enumeration>
            <enumeration value="2xLTF_1.6us" version="2.14">
              <description>
                applicable to 802.11ax and 802.11be specifications only
              </description>
            </enumeration>
            <enumeration value="4xLTF_0.8us" version="2.14">
              <description>
                applicable to 802.11ax and 802.11be specifications only
              </description>
            </enumeration>
            <enumeration value="4xLTF_3.2us" version="2.14">
              <description>
                applicable to 802.11ax and 802.11be specifications only
              </description>
            </enumeration>
            <enumeration value="Auto"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="CenterFrequencySegement0" access="readWrite"
          status="deleted" version="2.13">
        <description>
          When operating in {{enum|80+80MHz|CurrentOperatingChannelBandwidth}},
          this parameter determines the Center Frequency Segment 0 for the
          first 80 MHz channel. See {{bibref|802.11-2016|Section 9.4.2.161}}
          and Table 9-252.

          {{deprecated|2.14|due to a typo. Use
          {{param|CenterFrequencySegment0}} instead}}

          {{obsoleted|2.16}}

          {{deleted|2.17}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="CenterFrequencySegement1" access="readWrite"
          status="deleted" version="2.13">
        <description>
          When operating in {{enum|80+80MHz|CurrentOperatingChannelBandwidth}},
          this parameter determines the Center Frequency Segment 1 for the
          second 80 MHz channel. See {{bibref|802.11-2016|Section 9.4.2.161}}
          and Table 9-252.

          {{deprecated|2.14|due to a typo. Use
          {{param|CenterFrequencySegment1}} instead}}

          {{obsoleted|2.16}}

          {{deleted|2.17}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="CenterFrequencySegment0" access="readWrite"
          version="2.14">
        <description>
          When operating in {{enum|80+80MHz|CurrentOperatingChannelBandwidth}},
          this parameter determines the Center Frequency Segment 0 for the
          first 80 MHz channel. See {{bibref|802.11-2016|Section 9.4.2.161}}
          and Table 9-252.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="CenterFrequencySegment1" access="readWrite"
          version="2.14">
        <description>
          When operating in {{enum|80+80MHz|CurrentOperatingChannelBandwidth}},
          this parameter determines the Center Frequency Segment 1 for the
          second 80 MHz channel. See {{bibref|802.11-2016|Section 9.4.2.161}}
          and Table 9-252.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MCS" access="readWrite">
        <description>
          The Modulation Coding Scheme index (applicable to 802.11n, 802.11ac,
          802.11ax and 802.11be specifications only). Values from 0 to 15 MUST
          be supported for ({{bibref|802.11n-2009}}). Values from 0 to 9 MUST
          be supported for {{bibref|802.11ac-2013}}. Values from 0 to 11 MUST
          be supported for {{bibref|802.11ax}}. Values from 0 to 15 MUST be
          supported for {{bibref|802.11be}}. A value of -1 indicates automatic
          selection of the MCS index.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="15"/>
            <range minInclusive="16" maxInclusive="31"/>
          </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).

          If the instance of this {{object}} is the same as
          {{object|Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.}},
          then this parameter is the same as
          {{param|Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.CurrentOperatingClassProfile.{i}.TxPower}}.
        </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).

          If the instance of this {{object|##}} is the same as
          {{object|Device.WiFi.DataElements.Network.Device.{i}.}}, then this
          parameter is the same as
          {{param|Device.WiFi.DataElements.Network.Device.{i}.CountryCode}}.
        </description>
        <syntax>
          <string>
            <size minLength="3" maxLength="3"/>
            <pattern value="[A-Z][A-Z][ OI]"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="RetryLimit" access="readWrite" version="2.8">
        <description>
          The maximum number of retransmissions of a short packet i.e. a packet
          that is no longer than the {{param|RTSThreshold}}. This corresponds
          to IEEE 802.11 parameter ''dot11ShortRetryLimit''
          {{bibref|802.11-2012}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="7"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="CCARequest" access="readWrite" version="2.8">
        <description>
          A request for the clear channel assessment (CCA) report in the format
          specified in {{bibref|802.11-2012|Clause 8.4.2.23.3}}.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="11" maxLength="11"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="CCAReport" access="readOnly" version="2.8">
        <description>
          The clear channel assessment (CCA) report in the format specified in
          {{bibref|802.11-2012|Clause 8.4.2.24.3}}.

          When read, the value of this parameter MUST correspond to
          {{param|CCARequest}}. How this is achieved is a local matter to the
          CPE.

          If this parameter is read before a CCARequest has been issued, then
          its value is {{empty}}.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="12" maxLength="12"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="RPIHistogramRequest" access="readWrite" version="2.8">
        <description>
          A request for a received power indicator (RPI) histogram in the
          format specified in {{bibref|802.11-2012|Clause 8.4.2.23.4}}.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="11" maxLength="11"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="RPIHistogramReport" access="readOnly" version="2.8">
        <description>
          Received power indicator (RPI) histogram report in the format
          specified in {{bibref|802.11-2012|Clause 8.4.2.24.4}}.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="19" maxLength="19"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="FragmentationThreshold" access="readWrite"
          version="2.8">
        <description>
          This specifies the current maximum size, in {{units}}, of the MPDU
          that can be delivered to the PHY. This parameter is based on
          ''dot11FragmentationThreshold'' from {{bibref|802.11-2012}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="octets"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RTSThreshold" access="readWrite" version="2.8">
        <description>
          This indicates the number of {{units}} in an MPDU, below which an
          RTS/CTS handshake is not performed. This parameter is based on
          ''dot11RTSThreshold'' from {{bibref|802.11-2012}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="octets"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LongRetryLimit" access="readWrite" version="2.8">
        <description>
          This indicates the maximum number of transmission attempts of a
          frame, the length of which is greater than {{param|RTSThreshold}},
          that will be made before a failure condition is indicated. This
          parameter is based on ''dot11LongRetryLimit'' from
          {{bibref|802.11-2012}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="BeaconPeriod" access="readWrite" version="2.8">
        <description>
          Time interval between transmitting beacons (expressed in {{units}}).
          This parameter is based on ''dot11BeaconPeriod'' from
          {{bibref|802.11-2012}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="DTIMPeriod" access="readWrite" version="2.8">
        <description>
          This specifies the number of beacon intervals (measured in {{units}})
          that elapse between transmission of Beacon frames containing a TIM
          element whose DTIM Count field is 0. This parameter is based on
          ''dot11DTIMPeriod'' from {{bibref|802.11-2020}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="ms"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="PacketAggregationEnable" access="readWrite"
          version="2.8">
        <description>
          This determines whether or not packet aggregation (commonly called
          "frame aggregation") is enabled. This applies only to 802.11n.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="PreambleType" access="readWrite" version="2.8">
        <description>
          The type of preamble. Longer preambles (more overhead) are needed by
          802.11g to coexist with legacy systems 802.11 and 802.11b.
        </description>
        <syntax>
          <string>
            <enumeration value="short"/>
            <enumeration value="long"/>
            <enumeration value="auto"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="BasicDataTransmitRates" access="readWrite"
          version="2.8">
        <description>
          {{list}} The set of data rates, in ''Mbps'', that have to be
          supported by all stations that desire to join this BSS. The stations
          have to be able to receive and transmit at each of the data rates
          listed in {{param}}. For example, a value of "1,2", indicates that
          stations support 1 Mbps and 2 Mbps. Most control packets use a data
          rate in {{param}}.
        </description>
        <syntax>
          <list/>
          <string/>
        </syntax>
      </parameter>

      <parameter name="SupportedDataTransmitRates" access="readOnly"
          version="2.8">
        <description>
          {{list}} Maximum radio data transmit rates in ''Mbps'' for unicast
          frames (a superset of {{param|BasicDataTransmitRates}}). Given the
          value of {{param|BasicDataTransmitRates}} from the example above,
          {{param}} might be "1,2,5.5,11", indicating that unicast frames can
          additionally be transmitted at 5.5 Mbps and 11 Mbps.

          {{param}} indicates equipment capability. This radio is capable of
          supporting these data rates.
        </description>
        <syntax>
          <list/>
          <string/>
        </syntax>
      </parameter>

      <parameter name="OperationalDataTransmitRates" access="readWrite"
          version="2.8">
        <description>
          {{list}} Data transmit rates in ''Mbps'' for unicast frames at which
          the radio will permit operation with any associated station (a subset
          of {{param|SupportedDataTransmitRates}}). Given the values of
          {{param|BasicDataTransmitRates}} and
          {{param|SupportedDataTransmitRates}} from the examples above,
          {{param}} might be "1,2,5.5", indicating that the radio will only
          permit operation at 1 Mbps, 2 Mbps and 5.5 Mbps, even though it could
          theoretically operate at 11 Mbps.

          This radio is limited to allowing operation only at these data rates.
          Note: Setting {{param}} can't increase the set of possible data rates
          but could narrow them.
        </description>
        <syntax>
          <list/>
          <string/>
        </syntax>
      </parameter>

      <parameter name="EnableRRM" access="readWrite" version="2.14">
        <description>
          Enables or disables 802.11k {{bibref|802.11k}} Radio Resource
          Management (RRM).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="ManagementPacketRate" access="readWrite" version="2.15">
        <description>
          The rate of Wi-Fi management frames (expressed in {{units}}).
        </description>
        <syntax>
          <unsignedInt>
            <units value="kbps"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.Radio.{i}.Stats." minEntries="1" maxEntries="1"
        version="2.0">
      <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}}.

        Packet counters here count 802.11 WiFi frames. See
        {{bibref|TR-181i2|Appendix III}} for further details.
      </description>

      <parameter name="Reset" access="readWrite" version="2.19">
        <description>
          Set this to {{true}} to reset all this object's statistics counters
          to zero.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BytesSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface,
          including framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface, including
          framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} that could not be transmitted
          because of errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} that contained errors
          preventing them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="CtsReceived" access="readOnly" version="2.14">
        <description>
          The total number of Request To Send (RTS) control frames that
          received a Clear To Send (CTS) response.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="NoCtsReceived" access="readOnly" version="2.14">
        <description>
          The total number of Request To Send (RTS) control frames that did not
          receive a Clear To Send (CTS) response.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="FrameHeaderError" access="readOnly" version="2.14">
        <description>
          The total number of received packets for which the PHY was able to
          correlate the preamble but not the header.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="GoodPLCPReceived" access="readOnly" version="2.14">
        <description>
          The total number of received frames with a good Physical Layer
          Convergence Protocol (PLCP) header.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="DPacketOtherMACReceived" access="readOnly"
          version="2.14">
        <description>
          The total number of Wi-Fi data packets received from other Basic
          Service Sets (BSSs), with a good Frame Check Sequence (FCS) and not
          matching the receiver address, meaning that that the frame is
          received at the MAC layer but is addressed to a different MAC.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="MPacketOtherMACReceived" access="readOnly"
          version="2.14">
        <description>
          The total number of Wi-Fi management packets received from other
          Basic Service Sets (BSSs), with a good Frame Check Sequence (FCS) and
          not matching the receiver address, meaning that that the frame is
          received at the MAC layer but is addressed to a different MAC.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="CPacketOtherMACReceived" access="readOnly"
          version="2.14">
        <description>
          The total number of Wi-Fi control packets received from other Basic
          Service Sets (BSSs), with a good Frame Check Sequence (FCS) and not
          matching the receiver address, meaning that that the frame is
          received at the MAC layer but is addressed to a different MAC.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="CtsOtherMACReceived" access="readOnly" version="2.14">
        <description>
          The total number of received Clear to Send (CTS) packets not
          addressed to the MAC address of this receiver.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="RtsOtherMACReceived" access="readOnly" version="2.14">
        <description>
          The total number of received Request to Send (RTS) frames not
          addressed to the MAC address of this receiver.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="PLCPErrorCount" access="readOnly" version="2.7">
        <description>
          The number of packets that were received with a detected Physical
          Layer Convergence Protocol (PLCP) header error.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="FCSErrorCount" access="readOnly" version="2.7">
        <description>
          The number of packets that were received with a detected FCS error.
          This parameter is based on dot11FCSErrorCount from
          {{bibref|802.11-2012|Annex C}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="InvalidMACCount" access="readOnly" version="2.7">
        <description>
          The number of packets that were received with a detected invalid MAC
          header error.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PacketsOtherReceived" access="readOnly" version="2.7">
        <description>
          The number of packets that were received, but which were destined for
          a MAC address that is not associated with this interface.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="Noise" access="readOnly" version="2.8">
        <description>
          An indicator of average noise strength received at this radio,
          measured in {{units}}. This measurement of non-IEEE 802.11 noise
          power is made by sampling the channel when virtual carrier sense
          indicates idle and this radio is neither transmitting nor receiving a
          frame.

          If the instance of this {{object}} is the same as
          {{object|Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.}},
          then this parameter is the same as
          {{param|Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.Noise}}.
        </description>
        <syntax>
          <int>
            <units value="dBm"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="TotalChannelChangeCount" access="readOnly"
          version="2.12">
        <description>
          The total number of times that the {{param|#.Channel}} has changed
          since the {{object|#}} entered its current operating state.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ManualChannelChangeCount" access="readOnly"
          version="2.12">
        <description>
          The number of times that the {{param|#.Channel}} has changed due to
          manual channel selection since the {{object|#}} entered its current
          operating state.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="AutoStartupChannelChangeCount" access="readOnly"
          version="2.12">
        <description>
          The number of times that the {{param|#.Channel}} has changed due to
          automatic channel selection procedure launched at radio startup since
          the {{object|#}} entered its current operating state.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="AutoUserChannelChangeCount" access="readOnly"
          version="2.12">
        <description>
          The number of times that the {{param|#.Channel}} has changed due to
          automatic channel selection procedure triggered by the user (e.g. via
          a GUI) since the {{object|#}} entered its current operating state.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="AutoRefreshChannelChangeCount" access="readOnly"
          version="2.12">
        <description>
          The number of times that the {{param|#.Channel}} has changed due to
          automatic channel selection procedure triggered by the
          {{param|#.AutoChannelRefreshPeriod}} timer since the {{object|#}}
          entered its current operating state.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="AutoDynamicChannelChangeCount" access="readOnly"
          version="2.12">
        <description>
          The number of times that the {{param|#.Channel}} has changed due to
          automatic channel selection procedure dynamically triggered to adjust
          to environmental interference since the {{object|#}} entered its
          current operating state.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="AutoDFSChannelChangeCount" access="readOnly"
          version="2.12">
        <description>
          The number of times that the {{param|#.Channel}} has changed due to
          automatic channel selection procedure triggered by DFS
          {{bibref|ETSIBRAN}} since the {{object|#}} entered its current
          operating state.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.CCAMeasurementDiagnostic." access="readOnly"
        minEntries="1" maxEntries="1"
        dmr:previousObject="Device.WiFi.Radio.{i}.Stats." version="2.15">
      <description>
        This object is to provide diagnostic information on a Clear Channel
        Assessment (CCA) measurement scan on this radio on the given channel
        using a specific {{param|DwellTime}}.
      </description>

      <parameter name="DiagnosticsState" access="readWrite">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="DiagnosticsState">
            <enumeration value="None" access="readOnly"/>
            <enumeration value="Requested"/>
            <enumeration value="Canceled" optional="true"/>
            <enumeration value="Complete" access="readOnly"/>
            <enumeration value="Error" access="readOnly" optional="true"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="Channel" access="readWrite" version="2.15">
        <description>
          The number of the Wi-Fi channel the clear channel assessment (CCA)
          measurement is run on.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="Frequency" access="readWrite" version="2.16">
        <description>
          Frequency of the channel the clear channel assessment (CCA)
          measurement is run on.
        </description>
        <syntax>
          <string>
            <enumeration value="2.4GHz"/>
            <enumeration value="5GHz"/>
            <enumeration value="6GHz" version="2.16"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="DwellTime" access="readWrite" version="2.15">
        <description>
          The duration of the CCA measurement in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="CCAReport" access="readOnly" version="2.15">
        <description>
          The clear channel assessment (CCA) report in the format specified in
          {{bibref|802.11-2020|Section 9.4.2.21.3}}.

          When read, the value of this parameter MUST correspond to
          {{param|Channel}}. How this is achieved is a local matter to the CPE.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="12" maxLength="12"/>
          </hexBinary>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.RemoteMeasurementDiagnostic." access="readOnly"
        minEntries="1" maxEntries="1"
        dmr:previousObject="Device.WiFi.Radio.{i}.Stats." version="2.15">
      <description>
        This object is to provide diagnostic information on a Remote
        Measurement of a Wi-Fi BSS.
      </description>

      <parameter name="DiagnosticsState" access="readWrite">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="DiagnosticsState">
            <enumeration value="None" access="readOnly"/>
            <enumeration value="Requested"/>
            <enumeration value="Canceled" optional="true"/>
            <enumeration value="Complete" access="readOnly"/>
            <enumeration value="Error" access="readOnly" optional="true"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="TargetBSS" access="readWrite" version="2.15">
        <description>
          The BSSID of the remote BSS.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="Timeout" access="readWrite" version="2.15">
        <description>
          The duration after which the request is timed out in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="OperatingClass" access="readWrite" version="2.15">
        <description>
          The Operating Class in {{bibref|802.11-2020|Table E-4}} for which the
          measurement is requested.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Channel" access="readWrite" version="2.15">
        <description>
          The number of the channel for which the measurement is requested.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SignalStrength" access="readOnly" version="2.15">
        <description>
          The received signal strength (RSSI) as received by the radio measured
          in {{units}}. RSSI is encoded as per {{bibref|802.11-2020|Table
          9-176}}. Reserved: 221 - 255.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
            <units value="dBm"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Noise" access="readOnly" version="2.15">
        <description>
          An indicator of the average radio noise plus interference power as
          received by the radio. Encoded as defined for ANPI in
          {{bibref|802.11-2020|Section 11.10.9.4}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.NeighboringWiFiDiagnostic." access="readOnly"
        minEntries="1" maxEntries="1"
        dmr:previousObject="Device.WiFi.Radio.{i}.Stats." version="2.7">
      <description>
        This object defines access to other WiFi SSIDs that this device is able
        to receive.
      </description>

      <parameter name="DiagnosticsState" access="readWrite">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="DiagnosticsState">
            <enumeration value="None" access="readOnly"/>
            <enumeration value="Requested"/>
            <enumeration value="Canceled" optional="true"/>
            <enumeration value="Complete" access="readOnly"/>
            <enumeration value="Error" access="readOnly" optional="true"/>
            <enumeration value="Completed" access="readOnly" status="deleted">
              <description>
                {{deprecated|2.13|because it's a typo for {{enum|Complete}}}}

                {{obsoleted|2.16}}

                {{deleted|2.17}}
              </description>
            </enumeration>
          </dataType>
        </syntax>
      </parameter>

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

    <object name="Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}."
        access="readOnly" numEntriesParameter="ResultNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.7">
      <description>
        Neighboring SSID table. This table models other WiFi SSIDs that this
        device is able to receive.
      </description>
      <uniqueKey functional="true">
        <parameter ref="BSSID"/>
      </uniqueKey>

      <parameter name="Radio" access="readOnly">
        <description>
          The Radio that detected the neighboring WiFi SSID.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="Device.WiFi.Radio."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SSID" access="readOnly">
        <description>
          The current service set identifier in use by the neighboring WiFi
          SSID. The value MAY be empty for hidden SSIDs.
        </description>
        <syntax>
          <string>
            <size maxLength="32"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="BSSID" access="readOnly">
        <description>
          The BSSID used for the neighboring WiFi SSID.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="Mode" access="readOnly">
        <description>
          The mode the neighboring WiFi radio is operating in.
        </description>
        <syntax>
          <string>
            <enumeration value="AdHoc"/>
            <enumeration value="Infrastructure"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Channel" access="readOnly">
        <description>
          The current radio channel used by the neighboring WiFi radio.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SignalStrength" access="readOnly">
        <description>
          An indicator of radio signal strength (RSSI) of the neighboring WiFi
          radio measured in {{units}}, as an average of the last 100 packets
          received.
        </description>
        <syntax>
          <int>
            <range minInclusive="-200" maxInclusive="0"/>
            <units value="dBm"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="SecurityModeEnabled" access="readOnly">
        <description>
          The type of encryption the neighboring WiFi SSID advertises.

          The {{enum|WEP}} value indicates either WEP-64 or WEP-128.

          The {{enum|WPA}} value is the same as WPA-Personal.

          The {{enum|WPA2}} value is the same as WPA2-Personal.

          The {{enum|WPA-WPA2}} value is the same as WPA-WPA2-Personal.

          The {{enum|WPA3-SAE}} value is the same as WPA3-Personal.

          The {{enum|WPA2-PSK-WPA3-SAE}} value is the same as
          WPA3-Personal-Transition.
        </description>
        <syntax>
          <string>
            <enumeration value="None"/>
            <enumeration value="WEP"/>
            <enumeration value="WPA"/>
            <enumeration value="WPA2"/>
            <enumeration value="WPA-WPA2"/>
            <enumeration value="WPA-Enterprise"/>
            <enumeration value="WPA2-Enterprise"/>
            <enumeration value="WPA-WPA2-Enterprise"/>
            <enumeration value="WPA3-SAE"/>
            <enumeration value="WPA2-PSK-WPA3-SAE"/>
            <enumeration value="WPA3-Enterprise"/>
            <enumeration value="OWE" version="2.16"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="EncryptionMode" access="readOnly">
        <description>
          The type of encryption the neighboring WiFi SSID advertises.

          When {{param|SecurityModeEnabled}} is one of
          {{enum|WPA3-SAE|SecurityModeEnabled}},
          {{enum|WPA2-PSK-WPA3-SAE|SecurityModeEnabled}}, or
          {{enum|WPA3-Enterprise|SecurityModeEnabled}}, {{enum|TKIP}} is not
          valid, and should not be in the list.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="TKIP"/>
            <enumeration value="AES"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="OperatingFrequencyBand" access="readOnly">
        <description>
          Indicates the frequency band at which the radio this SSID instance is
          operating.
        </description>
        <syntax>
          <string>
            <enumeration value="2.4GHz"/>
            <enumeration value="5GHz"/>
            <enumeration value="6GHz" version="2.16"/>
          </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}}, {{enum|ax}}, {{enum|be}} are allowed.

          If {{param|OperatingFrequencyBand}} is set to
          {{enum|5GHz|OperatingFrequencyBand}}, only values {{enum|a}},
          {{enum|n}}, {{enum|ac}}, {{enum|ax}}, {{enum|be}} are allowed.

          If {{param|OperatingFrequencyBand}} is set to
          {{enum|6GHz|OperatingFrequencyBand}}, only values {{enum|ax}},
          {{enum|be}} 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>
            <enumeration value="ac">
              <description>{{bibref|802.11ac-2013}}</description>
            </enumeration>
            <enumeration value="ax">
              <description>{{bibref|802.11ax}}</description>
            </enumeration>
            <enumeration value="be" version="2.17">
              <description>{{bibref|802.11be}}</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="OperatingStandards" access="readOnly">
        <description>
          {{list}} List items indicate which IEEE 802.11 standard that is
          detected for this {{object}}.

          Each value indicates support for the indicated standard.

          If {{param|OperatingFrequencyBand}} is set to
          {{enum|2.4GHz|##.Radio.{i}.SupportedFrequencyBands}}, only values
          {{enum|b}}, {{enum|g}}, {{enum|n}}, {{enum|ax}}, {{enum|be}} are
          allowed.

          If {{param|OperatingFrequencyBand}} is set to
          {{enum|5GHz|##.Radio.{i}.SupportedFrequencyBands}}, only values
          {{enum|a}}, {{enum|n}}, {{enum|ac}}, {{enum|ax}}, {{enum|be}} are
          allowed.

          If {{param|OperatingFrequencyBand}} is set to
          {{enum|6GHz|##.Radio.{i}.SupportedFrequencyBands}}, only value
          {{enum|ax}}, {{enum|be}} 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="OperatingChannelBandwidth" access="readOnly">
        <description>
          Indicates the bandwidth at which the channel is operating.
        </description>
        <syntax>
          <string>
            <enumeration value="20MHz"/>
            <enumeration value="40MHz"/>
            <enumeration value="80MHz"/>
            <enumeration value="160MHz"/>
            <enumeration value="320MHz-1" version="2.17"/>
            <enumeration value="320MHz-2" version="2.17"/>
            <enumeration value="Auto"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="BeaconPeriod" access="readOnly">
        <description>
          Time interval (in {{units}}) between transmitting beacons.
        </description>
        <syntax>
          <unsignedInt>
            <units value="ms"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Noise" access="readOnly">
        <description>
          Indicator of average noise strength (in {{units}}) received from the
          neighboring WiFi radio.
        </description>
        <syntax>
          <int>
            <range minInclusive="-200" maxInclusive="0"/>
            <units value="dBm"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="BasicDataTransferRates" access="readOnly">
        <description>
          {{list}} Basic data transmit rates (in Mbps) for the SSID. For
          example, if {{param}} is "1,2", this indicates that the SSID is
          operating with basic rates of 1 Mbps and 2 Mbps.
        </description>
        <syntax>
          <list>
            <size maxLength="256"/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="SupportedDataTransferRates" access="readOnly">
        <description>
          {{list}} Data transmit rates (in Mbps) for unicast frames at which
          the SSID will permit a station to connect. For example, if {{param}}
          is "1,2,5.5", this indicates that the SSID will only permit
          connections at 1 Mbps, 2 Mbps and 5.5 Mbps.
        </description>
        <syntax>
          <list>
            <size maxLength="256"/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="DTIMPeriod" access="readOnly">
        <description>
          The number of beacon intervals (measured in {{units}}) that elapse
          between transmission of Beacon frames containing a TIM element whose
          DTIM count field is 0. This value is transmitted in the DTIM Period
          field of beacon frames. {{bibref|802.11-2020}}
        </description>
        <syntax>
          <unsignedInt>
            <units value="ms"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.SSID.{i}." access="readWrite"
        numEntriesParameter="SSIDNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.0">
      <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 functional="true">
        <parameter ref="BSSID"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the interface.

          This parameter is based on ''ifAdminStatus'' from {{bibref|RFC2863}}.

          If the instance of this {{object}} is the same as
          {{object|Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.}},
          then this parameter is the same as
          {{param|Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.Enabled}}.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Status">
        <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" version="2.0">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name">
        <description>
          The textual name of the interface as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" activeNotify="canDeny">
        <description>
          The accumulated time in {{units}} since the interface entered its
          current operational state.

          If the instance of this {{object}} is the same as
          {{object|Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.}},
          then this parameter is the same as
          {{param|Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.LastChange}}.
        </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="Upstream" access="readOnly" version="2.12">
        <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.

          See {{param|#.Radio.{i}.Upstream}} for details of how the two
          ''Upstream'' parameters interact.
        </description>
        <syntax>
          <boolean/>
        </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).

          If the instance of this {{object}} is the same as
          {{object|Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.}},
          then this parameter is the same as
          {{param|Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.BSSID}}.
        </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).

          If the instance of this {{object}} is the same as
          {{object|Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.}},
          then this parameter is the same as
          {{param|Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.SSID}}.
        </description>
        <syntax>
          <string>
            <size maxLength="32"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="MLDUnit" access="readWrite" version="2.17">
        <description>
          MLD-BSS unit number specifying BSS across multiple radios that form a
          single Multi Link Device. Assigning the same MLD unit groups Basic
          Service Sets (BSS) across radios. A (default) value of -1 indicates
          that the interface is not part of any MLD.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="-1"/>
            <range minInclusive="0" maxInclusive="24"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="ATFEnable" access="readWrite" version="2.14">
        <description>
          Enables or disables Air Time Fairness (ATF).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="FlushATFTable" access="readWrite" version="2.14">
        <description>
          After this parameter is set to true, the ATF configuration of the
          interface will be reset.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="SetATF" access="readWrite" version="2.14">
        <description>
          Configures the ATF setting for all associated devices on an
          individual SSID. Expressed as {{units}} of airtime, such that no
          station should exceed this percentage.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="100"/>
            <units value="percent"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.SSID.{i}.Stats." minEntries="1" maxEntries="1"
        version="2.0">
      <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}}.

        Packet counters here count 802.11 WiFi frames. See
        {{bibref|TR-181i2|Appendix III}} for further details.
      </description>

      <parameter name="Reset" access="readWrite" version="2.19">
        <description>
          Set this to {{true}} to reset all this object's statistics counters
          to zero.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BytesSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface,
          including framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface, including
          framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} that could not be transmitted
          because of errors.

          These can be due to the number of retransmissions exceeding the retry
          limit, or from other causes.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} that contained errors
          preventing them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="ErrorsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="DiscardPacketsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were not addressed to a multicast or broadcast
          address at this layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a multicast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a broadcast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnknownProtoPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received via the interface which were
          discarded because of an unknown or unsupported protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="RetransCount" access="readOnly" version="2.7">
        <description>
          The total number of transmitted packets which were retransmissions.
          Two retransmissions of the same packet results in this counter
          incrementing by two.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="FailedRetransCount" access="readOnly" version="2.7">
        <description>
          The number of packets that were not transmitted successfully due to
          the number of retransmission attempts exceeding an 802.11 retry
          limit. This parameter is based on dot11FailedCount from
          {{bibref|802.11-2012}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="RetryCount" access="readOnly" version="2.7">
        <description>
          The number of packets that were successfully transmitted after one or
          more retransmissions. This parameter is based on dot11RetryCount from
          {{bibref|802.11-2012}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MultipleRetryCount" access="readOnly" version="2.7">
        <description>
          The number of packets that were successfully transmitted after more
          than one retransmission. This parameter is based on
          dot11MultipleRetryCount from {{bibref|802.11-2012}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ACKFailureCount" access="readOnly" version="2.7">
        <description>
          The number of expected ACKs that were never received. This parameter
          is based on dot11ACKFailureCount from {{bibref|802.11-2012}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="AggregatedPacketCount" access="readOnly" version="2.7">
        <description>
          The number of aggregated packets that were transmitted. This applies
          only to 802.11n and 802.11ac.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSentBufOverflow" access="readOnly"
          version="2.14">
        <description>
          The total number of discarded packets during transmission caused by
          transmit buffer overflow.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSentNoAssoc" access="readOnly"
          version="2.14">
        <description>
          The total number of discarded packets due to the station not being
          associated.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="FragSent" access="readOnly" version="2.14">
        <description>
          The total number of frame-fragments transmitted out of the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="SentNoAck" access="readOnly" version="2.14">
        <description>
          The total number of transmitted data packets that did not receive an
          ACK when expected.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="DupReceived" access="readOnly" version="2.14">
        <description>
          The total number of received packets whose Sequence Control field
          indicates it is a duplicate.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="TooLongReceived" access="readOnly" version="2.14">
        <description>
          The total number of received packets longer than the maximum allowed
          packet length.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="TooShortReceived" access="readOnly" version="2.14">
        <description>
          The total number of received packets that did not contain enough
          bytes for the packet type.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="AckUcastReceived" access="readOnly" version="2.14">
        <description>
          The total number of unicast ACKs received, with good Frame Check
          Sequence (FCS).
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.AccessPoint.{i}." access="readWrite"
        numEntriesParameter="AccessPointNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded"
        version="2.0">
      <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 functional="true">
        <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" version="2.0">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </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" status="deleted">
        <description>
          The maximum number of retransmission for a packet. This corresponds
          to IEEE 802.11 parameter ''dot11ShortRetryLimit''.

          {{deprecated|2.11|because it is really a {{object|#.Radio}}
          attribute. Use {{param|#.Radio.{i}.RetryLimit}}}}

          {{obsoleted|2.14}}

          {{deleted|2.15}}
        </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) {{bibref|WMM}}.
        </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>

      <parameter name="MaxAssociatedDevices" access="readWrite"
          status="deleted" version="2.4">
        <description>
          The maximum number of devices that can simultaneously be connected to
          the access point.

          A value of 0 means that there is no specific limit.

          {{deprecated|2.13|in favor of {{param|MaxAllowedAssociations}}}}

          {{obsoleted|2.14-2.15}}

          {{deleted|2.16}}
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="IsolationEnable" access="readWrite" version="2.4">
        <description>
          Enables or disables device isolation.

          A value of {{true}} means that the devices connected to the Access
          Point are isolated from all other devices within the home network (as
          is typically the case for a Wireless Hotspot).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MACAddressControlEnabled" access="readWrite"
          version="2.9">
        <description>
          Indicates whether or not MAC Address Control is enabled on this
          {{object|#}}. MAC Address Control limits client devices to those
          whose hardware addresses match the {{param|AllowedMACAddress}} list.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="AllowedMACAddress" access="readWrite" version="2.9">
        <description>
          Hardware addresses of client devices that are allowed to associate
          with this {{object|#}} if {{param|MACAddressControlEnabled}} is
          {{true}}.
        </description>
        <syntax>
          <list/>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="MaxAllowedAssociations" access="readWrite"
          version="2.12">
        <description>
          Maximum number of associated devices allowed for this SSID. If the
          number is reached new device connections to this access point will be
          rejected.

          If the number is changed to a value less than the actual number of
          associated devices, new device connections will be rejected until the
          number of devices is below this number. It is not expected that any
          connections are dropped.

          If the parameter {{param|#.Radio.{i}.MaxSupportedAssociations}}
          exists, the value MUST be less than or equal to the maximum number
          specified in {{param|#.Radio.{i}.MaxSupportedAssociations}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="CpeOperationMode" access="readWrite" version="2.14">
        <description>
          Reports information about the CPE operation mode (router or
          bridge/range extender).
        </description>
        <syntax>
          <string>
            <enumeration value="Router">
              <description>
                Indicates indicates operation as a router.
              </description>
            </enumeration>
            <enumeration value="Bridge/Extender">
              <description>
                Indicates operation as a range extender or access point in
                bridge mode.
              </description>
            </enumeration>
          </string>
          <default type="object" value="Router"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.AccessPoint.{i}.Security." access="readOnly"
        minEntries="1" maxEntries="1" version="2.0">
      <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.

          The {{enum|WPA3-Personal}} value is the same as WPA3-SAE.

          The {{enum|WPA3-Personal-Transition}} value is the same as
          WPA2-PSK-WPA3-SAE.
        </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="WPA3-Personal"/>
            <enumeration value="WPA-WPA2-Personal"/>
            <enumeration value="WPA3-Personal-Transition"/>
            <enumeration value="WPA-Enterprise"/>
            <enumeration value="WPA2-Enterprise"/>
            <enumeration value="WPA3-Enterprise"/>
            <enumeration value="WPA-WPA2-Enterprise"/>
            <enumeration value="OWE" version="2.16"/>
          </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="EncryptionMode" access="readWrite" version="2.14">
        <description>
          The type of encryption in use.

          When {{param|ModeEnabled}} is one of
          {{enum|WPA3-Personal|ModesSupported}},
          {{enum|WPA3-Personal-Transition|ModesSupported}}, or
          {{enum|WPA3-Enterprise|ModesSupported}}, {{enum|TKIP}} is not valid,
          and should not be in the list.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="TKIP"/>
            <enumeration value="AES"/>
          </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 secured="true">
          <hexBinary>
            <size minLength="5" maxLength="5"/>
            <size minLength="13" maxLength="13"/>
          </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 Controller SHOULD NOT set both the
          {{param|KeyPassphrase}} and the {{param}} directly (the result of
          doing this is undefined).
        </description>
        <syntax secured="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}} for WPA2 is
          immediately generated. The Controller 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 secured="true">
          <string>
            <size minLength="8" 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="SAEPassphrase" access="readWrite" version="2.13">
        <description>
          A passphrase for {{enum|WPA3-Personal|ModeEnabled}} or
          {{enum|WPA3-Personal-Transition|ModeEnabled}} security modes.

          NOTE: this parameter is for WPA3. WPA2 {{param|PreSharedKey}} is
          generated from {{param|KeyPassphrase}}.
        </description>
        <syntax secured="true">
          <string/>
        </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}},
          {{enum|WPA3-Enterprise|ModeEnabled}}, or
          {{enum|WPA-WPA2-Enterprise|ModeEnabled}}).
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
        </syntax>
      </parameter>

      <parameter name="SecondaryRadiusServerIPAddr" access="readWrite"
          version="2.5">
        <description>
          The IP Address of a secondary 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}},
          {{enum|WPA3-Enterprise|ModeEnabled}}, or
          {{enum|WPA-WPA2-Enterprise|ModeEnabled}}).

          The client can forward requests to the secondary server in the event
          that the primary server is down or unreachable, or after a number of
          tries to the primary server fail, or in a round-robin fashion
          {{bibref|RFC2865}}.
        </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}},
          {{enum|WPA3-Enterprise|ModeEnabled}}, or
          {{enum|WPA-WPA2-Enterprise|ModeEnabled}}).
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="1812"/>
        </syntax>
      </parameter>

      <parameter name="SecondaryRadiusServerPort" access="readWrite"
          version="2.5">
        <description>
          The port number of the secondary 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}},
          {{enum|WPA3-Enterprise|ModeEnabled}}, or
          {{enum|WPA-WPA2-Enterprise|ModeEnabled}}).

          If this parameter is not implemented, the secondary RADIUS server
          will use the same port number as the primary RADIUS server.
        </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 secured="true">
          <string/>
        </syntax>
      </parameter>

      <parameter name="SecondaryRadiusSecret" access="readWrite" version="2.5">
        <description>
          The secret used for handshaking with the secondary RADIUS server
          {{bibref|RFC2865}}.

          If this parameter is not implemented, the secondary RADIUS server
          will use the same secret as the primary RADIUS server.
        </description>
        <syntax secured="true">
          <string/>
        </syntax>
      </parameter>

      <parameter name="MFPConfig" access="readWrite" version="2.11">
        <description>
          Management Frame Protection configuration applicable when
          {{param|ModeEnabled}} is set to {{enum|WPA2-Personal|ModeEnabled}},
          {{enum|WPA2-Enterprise|ModeEnabled}},
          {{enum|WPA3-Personal|ModeEnabled}}, or
          {{enum|WPA3-Enterprise|ModeEnabled}}. When in WPA3 modes, {{param}}
          MUST be set to {{enum|Required}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Optional"/>
            <enumeration value="Required"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

      <parameter name="SPPAMSDU" access="readWrite" version="2.16">
        <description>
          Signaling and Payload Protected for A-MSDU frames.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled">
              <description>
                This AP does not advertise supporting SPP A-MSDU
              </description>
            </enumeration>
            <enumeration value="Capable">
              <description>
                This AP advertises supporting SPP A-MSDU
              </description>
            </enumeration>
            <enumeration value="Required">
              <description>
                This AP advertises supporting SPP A-MSDU and refuses non-SPP
                A-MSDU frames
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="TransitionDisableIndication" access="readWrite"
          version="2.16">
        <description>
          Sets the transition disable indication. When this parameter is
          enabled with {{param|ModeEnabled}} set to a transition mode, such as
          {{enum|WPA3-Personal-Transition|ModeEnabled}}, stations connected to
          the AP are not allowed to transition between the security modes
          allowed by the transition mode. Stations capable of the more secure
          security mode allowed by the transition, as defined in
          {{bibref|WPA3v3.0}}, will always communicate to the AP using it.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="true"/>
        </syntax>
      </parameter>

      <parameter name="Reset" access="readWrite" version="2.4">
        <description>
          When set to {{true}}, this {{object|#}} instance's WiFi security
          settings are reset to their factory default values. The affected
          settings include {{param|ModeEnabled}}, {{param|WEPKey}},
          {{param|PreSharedKey}}, {{param|KeyPassphrase}},
          {{param|SAEPassphrase}}, and {{param|#.WPS.PIN}} (if applicable).

          If the parameter cannot be set, the CPE MUST reject the request as an
          invalid parameter value. Possible failure reasons include a lack of
          default values or if {{param|ModeEnabled}} is an Enterprise type,
          i.e. {{enum|WPA-Enterprise|ModesSupported}},
          {{enum|WPA2-Enterprise|ModesSupported}},
          {{enum|WPA3-Enterprise|ModesSupported}}, or
          {{enum|WPA-WPA2-Enterprise|ModesSupported}}.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.AccessPoint.{i}.Interworking." version="2.19">
      <description>
        This object contains the settings to the interworking element as
        described in {{bibref|802.11-2020|Section 9.4.2.91}}.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Specifies whether the Interworking element is included in the
          wireless frames for this access point.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="AccessNetworkType" access="readWrite">
        <description>
          Type of access network to be specified in Interworking element as per
          {{bibref|802.11-2020|Table 9-236 Access Network Type}}.
        </description>
        <syntax>
          <string>
            <enumeration value="PrivateNetwork"/>
            <enumeration value="PrivateNetworkWithGuestAccess"/>
            <enumeration value="ChargeablePublicNetwork"/>
            <enumeration value="FreePublicNetwork"/>
            <enumeration value="PersonalDeviceNetwork"/>
            <enumeration value="EmergencyServicesOnlyNetwork"/>
            <enumeration value="TestOrExperimental"/>
            <enumeration value="Wildcard"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="InternetAvailable" access="readWrite">
        <description>
          Indicates that Internet Access is available at the AP when set to
          {{true}}. This MUST be set to {{false}} in case of walled-garden
          environments, where the AP may limit Wi-Fi access to locally
          available content. See {{bibref|802.11-2020|Section 9.4.2.91}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="ASRA" access="readWrite">
        <description>
          Additional Step Required For Access as specified in the Interworking
          element of {{bibref|802.11-2020|Figure 9-484}}. Indicates that the
          network requires a further step for access when set to {{true}}. The
          Type of access is determined by {{param|#.ANQP.NetworkAuthTypes}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="VenueGroup" access="readWrite">
        <description>
          Specifies the venue group as descriped in {{bibref|802.11-2020|Table
          9-65-Venue group codes and descriptions}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Unspecified"/>
            <enumeration value="Assembly"/>
            <enumeration value="Business"/>
            <enumeration value="Educational"/>
            <enumeration value="Factory-Industrial"/>
            <enumeration value="Institutional"/>
            <enumeration value="Mercantile"/>
            <enumeration value="Residential"/>
            <enumeration value="Storage"/>
            <enumeration value="Utility-Miscellaneous"/>
            <enumeration value="Vehicular"/>
            <enumeration value="Outdoor"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="VenueType" access="readWrite">
        <description>
          Specifies the Venue Type as described in {{bibref|802.11-2020|Table
          9-66 Venue Type assignments}}.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="HESSID" access="readWrite">
        <description>
          Specifies the 6-octet MAC address that identifies the homogeneous ESS
          as described in {{bibref|802.11-2020|Section 9.4.2.91}}.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="EmergencyServiceReachable" access="readWrite">
        <description>
          ESR (emergency services reachable) field of the Interworking element
          as described in {{bibref|802.11-2020|Section 9.4.2.91}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="UnauthenticatedEmergencyServiceAvailable"
          access="readWrite">
        <description>
          UESA (unauthenticated emergency service accessible) field of the
          interworking element as described in {{bibref|802.11-2020|Section
          9.4.2.91}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.AccessPoint.{i}.ANQP." version="2.19">
      <description>
        This object contains the settings required for configuring the Access
        Network Query Protocol Information Elements as described in
        {{bibref|802.11-2020|Section 9.4.5}}.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Specfies whether ANQP Element is sent as part of the wireless frames.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="IPv4AddressAvailability" access="readWrite">
        <description>
          Specifies the IPv4 address availabilty field as described in
          {{bibref|802.11-2020|Table 9-334-IPv4 Address field values}}.
        </description>
        <syntax>
          <string>
            <enumeration value="NotAvailable">
              <description>Address type not available</description>
            </enumeration>
            <enumeration value="PublicIPv4">
              <description>Public IPv4 address available</description>
            </enumeration>
            <enumeration value="PortRestrictedIPv4">
              <description>Port-restricted IPv4 address available</description>
            </enumeration>
            <enumeration value="SingleNATIPv4">
              <description>
                Single NATed private IPv4 address available
              </description>
            </enumeration>
            <enumeration value="DoubleNATIPv4">
              <description>
                Double NATed private IPv4 address available
              </description>
            </enumeration>
            <enumeration value="PortRestrictSingleNATIPv4">
              <description>
                Port-restricted and Single NATed IPv4 address available
              </description>
            </enumeration>
            <enumeration value="PortRestrictDoubleNATIPv4">
              <description>
                Port-restricted and Double NATed IPv4 address available
              </description>
            </enumeration>
            <enumeration value="Unknown">
              <description>Availability of address type unknown</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="IPv6AddressAvailability" access="readWrite">
        <description>
          Specifies the IPv6 Address Type Availability ANQP-element as
          described in {{bibref|802.11-2020|Table 9-333-IPv6 Address field
          values}}.
        </description>
        <syntax>
          <string>
            <enumeration value="NotAvailable">
              <description>Address type not available</description>
            </enumeration>
            <enumeration value="Available">
              <description>Address type available</description>
            </enumeration>
            <enumeration value="Unknown">
              <description>Availability of address type unknown</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="VenueName" access="readWrite">
        <description>
          Specifies venue name which can assist a user in selecting the
          appropriate BSS of which to become a member as described in
          {{bibref|802.11-2020|Section 9.4.5.4}}.
        </description>
        <syntax>
          <string>
            <size maxLength="252"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="RoamingConsortiumOIs" access="readWrite">
        <description>
          Specifies the list of Roaming Consortiums whose networks are
          accessible via this AP as described in {{bibref|802.11-2020|Section
          9.4.5.7}}.
        </description>
        <syntax>
          <list/>
          <string/>
        </syntax>
      </parameter>

      <parameter name="NAIRealms" access="readWrite">
        <description>
          Specifies the list of network access identifier (NAI) realms
          corresponding to Subscription Service Provider or other entities
          whose networks or service are accessible via this AP as described in
          {{bibref|802.11-2020|Section 9.4.5.10}}.
        </description>
        <syntax>
          <list/>
          <string/>
        </syntax>
      </parameter>

      <parameter name="Domains" access="readWrite">
        <description>
          Specifies the list of one or more domain names of the entity
          operating the IEEE 802.11 access network as described in
          {{bibref|802.11-2020|Section 9.4.5.15}}.
        </description>
        <syntax>
          <list/>
          <string/>
        </syntax>
      </parameter>

      <parameter name="AdviceOfCharges" access="readWrite">
        <description>
          Specifies the list of financial advice of charges related to access
          as described in {{bibref|802.11-2020|Section 9.4.5.21}}.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="Time-based"/>
            <enumeration value="Data-volume-based"/>
            <enumeration value="Time-and-data-volume-based"/>
            <enumeration value="Unlimited"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="NetworkAuthTypes" access="readWrite">
        <description>
          Specifies the list of authentication types required when
          {{param|#.Interworking.ASRA}} is set to {{true}} as described in
          {{bibref|802.11-2020|Section 9.4.5.23}}.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="0">
              <description>Acceptance Of Terms and Conditions</description>
            </enumeration>
            <enumeration value="1">
              <description>On-line Enrollment Supported</description>
            </enumeration>
            <enumeration value="2">
              <description>http-https Redirection</description>
            </enumeration>
            <enumeration value="3">
              <description>DNS Redirection</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="Cellular3GPPNetworkInfo" access="readWrite">
        <description>
          Specifies the Public Land Mobile Network (PLMN) IDs which denote the
          country code (MCC) and network code (MNC) as described in
          {{bibref|802.11-2020|Section 9.4.5.11 3GPP Cellular Network
          ANQP-element}}.

          Example:

          : ''310410, 310026''
        </description>
        <syntax>
          <list/>
          <dataType ref="PLMNId"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.AccessPoint.{i}.Passpoint." version="2.19">
      <description>
        This object describes Passpoint/HotSpot 2.0 elements as defined in
        {{bibref|Passpoint}}.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or Disables Hotspot 2.0 indication on the access point.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Version" access="readOnly">
        <description>
          Passpoint specification version as described in
          {{bibref|Passpoint|Table 5. Passpoint Specification version number
          definition}}.
        </description>
        <syntax>
          <string>
            <enumeration value="R1">
              <description>Passpoint R1</description>
            </enumeration>
            <enumeration value="R2">
              <description>Passpoint R2</description>
            </enumeration>
            <enumeration value="R3">
              <description>Passpoint R3</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="OperatorFriendlyName" access="readWrite">
        <description>
          Indicates that operator's preferred friendly name used for Online
          Sign Up purposes to the Passpoint hotspot operator for advertisement
          as described in {{bibref|Passpoint|Section 4.3}}.
        </description>
        <syntax>
          <string>
            <size maxLength="252"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="DGAFDisable" access="readWrite">
        <description>
          Indicates the state of the Downstream group-addressed forwarding
          Disable bit in the HS2.0 Indication element as described in
          {{bibref|Passpoint|Section 5.2}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.AccessPoint.{i}.Passpoint.OSU." version="2.19">
      <description>
        This object implements Passpoint Online Sign Up as described in
        {{bibref|Passpoint|Section 4.3}}.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or Disables Online Sign Up feature on the access point.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="SSID" access="readWrite">
        <description>
          The SSID that the mobile device uses for Online Sign Up with all the
          Online Sign Up providers listed in {{param|FriendlyNames}}
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="Method" access="readWrite">
        <description>
          Specifies the list of protocols supported by the Online Sign Up
          provider as described in {{bibref|Passpoint|Table 13-OSU Method
          values}}.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="Reserved"/>
            <enumeration value="SOAP_XML_SPP"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="FriendlyNames" access="readWrite">
        <description>
          Specifies the list of Online Sign Up Provider names as described in
          {{bibref|Passpoint|Section 4.8.1.1}}.
        </description>
        <syntax>
          <list/>
          <string>
            <size maxLength="252"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ServerURIs" access="readWrite">
        <description>
          Specifies the list of Online Sign Up Server URI as described in
          {{bibref|Passpoint|Section 4.8.1.2}}.
        </description>
        <syntax>
          <list/>
          <string/>
        </syntax>
      </parameter>

      <parameter name="ServiceDescriptions" access="readWrite">
        <description>
          Specifies the list of Online Sign Up service description as described
          in {{bibref|Passpoint|Section 4.8.1.6}}.
        </description>
        <syntax>
          <list/>
          <string>
            <size maxLength="252"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ProviderNAIs" access="readWrite">
        <description>
          Specifies the list of the Network Access Identifiers that is used for
          Online Sign Up as described in {{bibref|Passpoint|Section 4.13}}.
        </description>
        <syntax>
          <list/>
          <string/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.AccessPoint.{i}.WPS." access="readOnly"
        minEntries="1" maxEntries="1" version="2.0">
      <description>
        This object contains parameters related to Wi-Fi Protected Setup for
        this access point (as specified in {{bibref|WPSv1.0}} or {{bibref|WPS
        2.0}}).
      </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>
          WPS configuration methods supported by the device. {{enum}}

          This parameter corresponds directly to the "Config Methods" attribute
          of {{bibref|WPS 2.0}}.

          The {{enum|USBFlashDrive}} and {{enum|Ethernet}} are only applicable
          in WPS 1.0 and are deprecated in WPS 2.x. The
          {{enum|PhysicalPushButton}}, {{enum|VirtualPushButton}},
          {{enum|PhysicalDisplay}} and {{enum|VirtualDisplay}} are applicable
          to WPS 2.x only.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="USBFlashDrive"/>
            <enumeration value="Ethernet"/>
            <enumeration value="Label"/>
            <enumeration value="Display"/>
            <enumeration value="ExternalNFCToken"/>
            <enumeration value="IntegratedNFCToken"/>
            <enumeration value="NFCInterface"/>
            <enumeration value="PushButton"/>
            <enumeration value="PIN"/>
            <enumeration value="PhysicalPushButton"/>
            <enumeration value="PhysicalDisplay"/>
            <enumeration value="VirtualPushButton"/>
            <enumeration value="VirtualDisplay"/>
          </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>

      <parameter name="Status" access="readOnly" version="2.11">
        <description>
          Indicates the current status of WPS. If the device goes to
          {{enum|SetupLocked}} the WPS needs to be disabled and re-enabled to
          come out of state.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Error"/>
            <enumeration value="Unconfigured"/>
            <enumeration value="Configured"/>
            <enumeration value="SetupLocked"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Version" access="readOnly" version="2.11">
        <description>
          The Wi-Fi Simple Configuration version supported by the device, a
          string of the form ''m.n'' where ''m'' is the major version and ''n''
          is the minor version.

          For example, a value of ''1.0'' denotes WSC 1.0 and a value of
          ''2.0'' denotes WSC 2.0.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="PIN" access="readWrite" version="2.11">
        <description>
          Represents the Device PIN used for PIN based pairing between WPS
          peers. This PIN is either a four digit number or an eight digit
          number.
        </description>
        <syntax secured="true">
          <string>
            <size maxLength="8"/>
            <pattern value="\d{4}|\d{8}"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}."
        access="readOnly" numEntriesParameter="AssociatedDeviceNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.0">
      <description>
        A table of the devices currently associated with the access point.
      </description>
      <uniqueKey functional="true">
        <parameter ref="MACAddress"/>
      </uniqueKey>

      <parameter name="MACAddress" access="readOnly">
        <description>
          The MAC address of an associated device.

          If the instance of this {{object}} is the same as
          {{object|Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.}},
          then this parameter is the same as
          {{param|Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.MACAddress}}.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="Type" access="readOnly" version="2.14">
        <description>
          Associated device type (Laptop, iPhone, Android, etc.).
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="SetStaATF" access="readWrite" version="2.14">
        <description>
          Configures the Air Time Fairness (ATF) setting of this individual
          associated device. Expressed as {{units}} of airtime, such that this
          associated device should not exceed this percentage. Setting this
          value overrides {{param|##.SSID.{i}.SetATF}} for this associated
          device.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="100"/>
            <units value="percent"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="OperatingStandard" access="readOnly" version="2.10">
        <description>
          The operating standard that this associated device is connected with.
        </description>
        <syntax>
          <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>
            <enumeration value="ac">
              <description>{{bibref|802.11ac-2013}}</description>
            </enumeration>
            <enumeration value="ax">
              <description>{{bibref|802.11ax}}</description>
            </enumeration>
            <enumeration value="be" version="2.17">
              <description>{{bibref|802.11be}}</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="AuthenticationState" access="readOnly">
        <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.

          If the instance of this {{object}} is the same as
          {{object|Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.}},
          then this parameter is the same as
          {{param|Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.LastDataDownlinkRate}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1000"/>
            <units value="kbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MaxSupportedDataDownlinkRate" access="readOnly"
          version="2.17">
        <description>
          Maximum supported data rate on the downlink from the associated
          device to the access point, measured in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1000"/>
            <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.

          If the instance of this {{object}} is the same as
          {{object|Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.}},
          then this parameter is the same as
          {{param|Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.LastDataUplinkRate}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1000"/>
            <units value="kbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MaxSupportedDataUplinkRate" access="readOnly"
          version="2.17">
        <description>
          Maximum supported data rate on the uplink from the associated device
          to the access point, measured in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1000"/>
            <units value="kbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="AssociationTime" access="readOnly" version="2.12">
        <description>
          Date and time in UTC when the device was associated

          If the instance of this {{object}} is the same as
          {{object|Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.}},
          then this parameter is the same as
          {{param|Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.LastConnectTime}}.
        </description>
        <syntax>
          <dateTime/>
        </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.

          If the instance of this {{object}} is the same as
          {{object|Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.}},
          then this parameter is the same as
          {{param|Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.SignalStrength}}.
        </description>
        <syntax>
          <int>
            <range minInclusive="-200" maxInclusive="0"/>
            <units value="dBm"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="Noise" access="readOnly" version="2.12">
        <description>
          An indicator of radio noise on 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 (see ANPI definition in
          {{bibref|802.11-2012|Clause 10.11.9.4}})

          If the instance of this {{object}} is the same as
          {{object|Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.}},
          then this parameter is the same as
          {{param|Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.MultiAPSTA.Noise|deprecated}}.
        </description>
        <syntax>
          <int>
            <range minInclusive="-200" maxInclusive="0"/>
            <units value="dBm"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="SNR" access="readOnly" version="2.17">
        <description>
          An indicator of signal to noise ratio, in {{units}}, on 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>
          <unsignedInt>
            <units value="dB"/>
          </unsignedInt>
        </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.

          If the instance of this {{object}} is the same as
          {{object|Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.}},
          then this parameter is the same as
          {{param|Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.RetransCount}}.
        </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>

      <parameter name="MaxSupportedBandwidth" access="readOnly" version="2.17">
        <description>
          Specifies the maximum supported bandwidth for the associated device
          to the access point.
        </description>
        <syntax>
          <string>
            <enumeration value="20MHz"/>
            <enumeration value="40MHz"/>
            <enumeration value="80MHz"/>
            <enumeration value="160MHz"/>
            <enumeration value="320MHz"/>
            <enumeration value="Unknown"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats."
        access="readOnly" minEntries="1" maxEntries="1" version="2.8">
      <description>
        These count bytes or packets sent to, or received from, this Associated
        Device, which is a WiFi station associated to this access point. Packet
        counters here count 802.11 WiFi frames.

        The CPE MUST reset these {{object}} parameters (unless otherwise stated
        in individual object or parameter descriptions) either when the
        {{param|##.Status}} of the parent {{object|##}} object transitions from
        {{enum|Disabled|##.Status}} to {{enum|Enabled|##.Status}}, or when it
        transitions from {{enum|Enabled|##.Status}} to
        {{enum|Disabled|##.Status}}.
      </description>

      <parameter name="BytesSent" access="readOnly">
        <description>
          The total number of bytes transmitted to the Associated Device,
          including framing characters.

          If the instance of this {{object|#}} is the same as
          {{object|Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.}},
          then this parameter is the same as
          {{param|Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.BytesSent}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" access="readOnly">
        <description>
          The total number of bytes received from the Associated Device,
          including framing characters.

          If the instance of this {{object|#}} is the same as
          {{object|Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.}},
          then this parameter is the same as
          {{param|Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.BytesReceived}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" access="readOnly">
        <description>
          The total number of packets transmitted to the Associated Device.

          If the instance of this {{object|#}} is the same as
          {{object|Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.}},
          then this parameter is the same as
          {{param|Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.PacketsSent}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" access="readOnly">
        <description>
          The total number of packets received from the Associated Device.

          If the instance of this {{object|#}} is the same as
          {{object|Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.}},
          then this parameter is the same as
          {{param|Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.PacketsReceived}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" access="readOnly">
        <description>
          The total number of outbound packets that could not be transmitted
          because of errors. These might be due to the number of
          retransmissions exceeding the retry limit, or from other causes.

          If the instance of this {{object|#}} is the same as
          {{object|Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.}},
          then this parameter is the same as
          {{param|Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.ErrorsSent}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

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

          If the instance of this {{object|#}} is the same as
          {{object|Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.}},
          then this parameter is the same as
          {{param|Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.ErrorsReceived}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="RetransCount" access="readOnly">
        <description>
          The total number of transmitted packets which were retransmissions.
          Two retransmissions of the same packet results in this counter
          incrementing by two.

          If the instance of this {{object|#}} is the same as
          {{object|Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.}},
          then this parameter is the same as
          {{param|Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.RetransCount}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="FailedRetransCount" access="readOnly">
        <description>
          The number of packets that were not transmitted successfully due to
          the number of retransmission attempts exceeding an 802.11 retry
          limit. This parameter is based on ''dot11FailedCount'' from
          {{bibref|802.11-2012}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="RetryCount" access="readOnly">
        <description>
          The number of packets that were successfully transmitted after one or
          more retransmissions. This parameter is based on ''dot11RetryCount''
          from {{bibref|802.11-2012}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="MultipleRetryCount" access="readOnly">
        <description>
          The number of packets that were successfully transmitted after more
          than one retransmission. This parameter is based on
          ''dot11MultipleRetryCount'' from {{bibref|802.11-2012}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.AccessPoint.{i}.AC.{i}." access="readOnly"
        minEntries="4" maxEntries="4" version="2.8">
      <description>
        This object contains parameters related to WiFi QoS for different
        802.11e access categories (priorities). Access categories are: BE, BK,
        VI, and VO. These parameters can help control and monitor 802.11e
        Enhanced distributed channel access (EDCA). The size of this table is
        fixed, with four entries which are identified by the
        {{param|AccessCategory}} parameter as follows:

        * BE (Best Effort)

        * BK (Background)

        * VI (Video)

        * VO (Voice)
      </description>
      <uniqueKey functional="true">
        <parameter ref="AccessCategory"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="AccessCategory" access="readOnly">
        <description>
          This identifies the access category.
        </description>
        <syntax>
          <string>
            <enumeration value="BE"/>
            <enumeration value="BK"/>
            <enumeration value="VI"/>
            <enumeration value="VO"/>
          </string>
        </syntax>
      </parameter>

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

      <parameter name="AIFSN" access="readWrite" status="deleted">
        <description>
          Arbitration Inter Frame Spacing (Number). This is the number of time
          slots in the arbitration interframe space.

          {{deprecated|2.15|because it is superseded by the WMM Specification}}

          {{obsoleted|2.17}}

          {{deleted|2.18}}
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="2" maxInclusive="15"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ECWMin" access="readWrite" status="deleted">
        <description>
          Exponent of Contention Window (Minimum). This encodes the values of
          CWMin as an exponent: CWMin = 2^ECWMin^ - 1. For example, if ECWMin
          is 8, then CWMin is 2^8^ - 1, or 255, (expressed in {{units}}).

          {{deprecated|2.15|because it is superseded by the WMM Specification}}

          {{obsoleted|2.17}}

          {{deleted|2.18}}
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="15"/>
            <units value="microseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ECWMax" access="readWrite" status="deleted">
        <description>
          Exponent of Contention Window (Maximum). This encodes the values of
          CWMax as an exponent: CWMax = 2^ECWMax^ - 1. For example, if ECWMax
          is 8, then CWMax is 2^8^ - 1, or 255, (expressed in {{units}}).

          {{deprecated|2.15|because it is superseded by the WMM Specification}}

          {{obsoleted|2.17}}

          {{deleted|2.18}}
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="15"/>
            <units value="microseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TxOpMax" access="readWrite" status="deleted">
        <description>
          Maximum transmit opportunity, in multiples of {{units}}. A TXOP time
          interval of 0 means it is limited to a single MAC protocol data unit
          (MPDU).

          {{deprecated|2.15|because it is superseded by the WMM Specification}}

          {{obsoleted|2.17}}

          {{deleted|2.18}}
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
            <units value="32 microseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="AckPolicy" access="readWrite">
        <description>
          Ack Policy, where False="Do Not Acknowledge" and True="Acknowledge"
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="OutQLenHistogramIntervals" access="readWrite">
        <description>
          {{list}} Definition of the histogram intervals for counting the
          transmit queue length in packets. Each value indicates the maximum
          value of the interval. For example, "0,1,4,8," defines the five
          intervals: 0 packets in queue, 1 packet in queue, 2 to 4 packets in
          queue, 5 to 8 packets in queue, and 9 or more packets in queue. (No
          value after the last comma means no upper bound.) If this parameter
          is set to {{empty}}, no {{param|Stats.OutQLenHistogram}} stats will
          be collected.
        </description>
        <syntax>
          <list/>
          <string/>
        </syntax>
      </parameter>

      <parameter name="OutQLenHistogramSampleInterval" access="readWrite">
        <description>
          The time between recording samples of the current transmit queue in
          {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.AccessPoint.{i}.AC.{i}.Stats." access="readOnly"
        minEntries="1" maxEntries="1" version="2.8">
      <description>
        This object contains statistics for different 802.11e access categories
        (priorities).

        Packet counters here count 802.11 WiFi frames.

        If there are not separate stats for each access category, (e.g.,
        802.11e is not used and there is only one queue), then only access
        category 0 = BE applies (e.g., the statistics for the single queue are
        in access category 0 = BE).

        The CPE MUST reset the Access Point's Stats parameters (unless
        otherwise stated in individual object or parameter descriptions) either
        when the Access Point becomes operationally down due to a previous
        administrative down (i.e. the Access Point's Status parameter
        transitions to a Disabled state) or when the Access Point becomes
        administratively up (i.e. the Access Point's Enable parameter
        transitions from false to true). Administrative and operational status
        is discussed in {{bibref|TR-181i2|Section 4.2.2}}.
      </description>

      <parameter name="BytesSent" access="readOnly">
        <description>
          The total number of {{units}} transmitted in this access category,
          including framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" access="readOnly">
        <description>
          The total number of {{units}} received in this access category,
          including framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" access="readOnly">
        <description>
          The total number of {{units}} transmitted in this access category.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" access="readOnly">
        <description>
          The total number of {{units}} received in this access category.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" access="readOnly">
        <description>
          The total number of outbound {{units}} in this access category that
          could not be transmitted because of errors. These might be due to the
          number of retransmissions exceeding the retry limit, or from other
          causes.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" access="readOnly">
        <description>
          The total number of inbound {{units}} in this access category that
          contained errors preventing them from being delivered to a
          higher-layer protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" access="readOnly">
        <description>
          The total number of outbound {{units}} in this access category 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" access="readOnly">
        <description>
          The total number of inbound {{units}} in this access category 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="RetransCount" access="readOnly">
        <description>
          The total number of transmitted {{units}} in this access category
          which were retransmissions. Two retransmissions of the same packet
          results in this counter incrementing by two.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="OutQLenHistogram" access="readOnly">
        <description>
          {{list}} Histogram of the total length of the transmit queue of this
          access category in packets (1 packet, 2 packets, etc.) according to
          the intervals defined by {{param|#.OutQLenHistogramIntervals}}, with
          samples taken each {{param|#.OutQLenHistogramSampleInterval}}.
          Example: "12,5,1,0,2,0,0,1".
        </description>
        <syntax>
          <list/>
          <string/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.AccessPoint.{i}.Accounting." access="readOnly"
        minEntries="1" maxEntries="1" version="2.5">
      <description>
        This object contains the parameters related to RADIUS accounting
        functionality for the access point.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables accounting functionality for the access point.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="ServerIPAddr" access="readWrite">
        <description>
          The IP Address of the RADIUS accounting server.
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
        </syntax>
      </parameter>

      <parameter name="SecondaryServerIPAddr" access="readWrite">
        <description>
          The IP Address of a secondary RADIUS accounting server.

          The client can forward requests to the secondary server in the event
          that the primary server is down or unreachable, or after a number of
          tries to the primary server fail, or in a round-robin fashion.
          {{bibref|RFC2866}}
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
        </syntax>
      </parameter>

      <parameter name="ServerPort" access="readWrite">
        <description>
          The port number of the RADIUS server used for accounting. The default
          port is 1813 as defined in {{bibref|RFC2866}}.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="1813"/>
        </syntax>
      </parameter>

      <parameter name="SecondaryServerPort" access="readWrite">
        <description>
          The port number of the secondary RADIUS server used for accounting.
          The default port is 1813 as defined in {{bibref|RFC2866}}.

          If this parameter is not implemented, the secondary RADIUS server
          will use the same port number as the primary RADIUS server.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="1813"/>
        </syntax>
      </parameter>

      <parameter name="Secret" access="readWrite">
        <description>
          The secret used for handshaking with the RADIUS accounting server
          {{bibref|RFC2865}}.
        </description>
        <syntax secured="true">
          <string/>
        </syntax>
      </parameter>

      <parameter name="SecondarySecret" access="readWrite">
        <description>
          The secret used for handshaking with the secondary RADIUS accounting
          server {{bibref|RFC2865}}.

          If this parameter is not implemented, the secondary RADIUS server
          will use the same secret as the primary RADIUS server.
        </description>
        <syntax secured="true">
          <string/>
        </syntax>
      </parameter>

      <parameter name="InterimInterval" access="readWrite">
        <description>
          Specifies the default interim accounting interval in {{units}}, which
          is used for service accounting when the ''Acct-Interim-Interval''
          attribute is not configured. {{bibref|RFC2869|Section 2.1}}

          The value MUST NOT be smaller than 60. The value SHOULD NOT be
          smaller than 600, and careful consideration should be given to its
          impact on network traffic {{bibref|RFC2869|Section 5.16}}.

          A value of 0 means no interim accounting messages are sent.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="0"/>
            <range minInclusive="60"/>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.EndPoint.{i}." access="readWrite"
        numEntriesParameter="EndPointNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.0">
      <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 functional="true">
        <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" version="2.0">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </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" version="2.0">
      <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" version="2.0">
      <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="WPA3-Personal"/>
            <enumeration value="WPA-WPA2-Personal"/>
            <enumeration value="WPA3-Personal-Transition"/>
            <enumeration value="WPA-Enterprise"/>
            <enumeration value="WPA2-Enterprise"/>
            <enumeration value="WPA3-Enterprise"/>
            <enumeration value="WPA-WPA2-Enterprise"/>
            <enumeration value="OWE" version="2.16"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.EndPoint.{i}.Profile.{i}." access="readWrite"
        numEntriesParameter="ProfileNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.0">
      <description>
        EndPoint Profile table.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <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" version="2.0">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </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" version="2.0">
      <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 secured="true">
          <hexBinary>
            <size minLength="5" maxLength="5"/>
            <size minLength="13" maxLength="13"/>
          </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 Controller SHOULD NOT set both the
          {{param|KeyPassphrase}} and the {{param}} directly (the result of
          doing this is undefined).
        </description>
        <syntax secured="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 Controller 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 secured="true">
          <string>
            <size minLength="8" maxLength="63"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SAEPassphrase" access="readWrite" version="2.13">
        <description>
          A passphrase for {{enum|WPA3-Personal|ModeEnabled}} or
          {{enum|WPA3-Personal-Transition|ModeEnabled}} security modes.

          NOTE: this parameter is for WPA3. WPA2 {{param|PreSharedKey}} is
          generated from {{param|KeyPassphrase}}.
        </description>
        <syntax secured="true">
          <string/>
        </syntax>
      </parameter>

      <parameter name="MFPConfig" access="readWrite" version="2.11">
        <description>
          Management Frame Protection configuration applicable when
          {{param|ModeEnabled}} is set to {{enum|WPA2-Personal|ModeEnabled}},
          {{enum|WPA2-Enterprise|ModeEnabled}},
          {{enum|WPA3-Personal|ModeEnabled}}, or
          {{enum|WPA3-Enterprise|ModeEnabled}}. When in WPA3 modes, {{param}}
          MUST be set to {{enum|Required}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Optional"/>
            <enumeration value="Required"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.EndPoint.{i}.WPS." access="readOnly"
        minEntries="1" maxEntries="1" version="2.0">
      <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>
          WPS configuration methods supported by the device. {{enum}}

          This parameter corresponds directly to the "Config Methods" attribute
          of {{bibref|WPS 2.0}}.

          The {{enum|USBFlashDrive}} and {{enum|Ethernet}} are only applicable
          in WPS 1.0 and are deprecated in WPS 2.x. The
          {{enum|PhysicalPushButton}}, {{enum|VirtualPushButton}},
          {{enum|PhysicalDisplay}} and {{enum|VirtualDisplay}} are applicable
          to WPS 2.x only.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="USBFlashDrive"/>
            <enumeration value="Ethernet"/>
            <enumeration value="Label"/>
            <enumeration value="Display"/>
            <enumeration value="ExternalNFCToken"/>
            <enumeration value="IntegratedNFCToken"/>
            <enumeration value="NFCInterface"/>
            <enumeration value="PushButton"/>
            <enumeration value="PIN"/>
            <enumeration value="PhysicalPushButton"/>
            <enumeration value="PhysicalDisplay"/>
            <enumeration value="VirtualPushButton"/>
            <enumeration value="VirtualDisplay"/>
          </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>

      <parameter name="Status" access="readOnly" version="2.11">
        <description>
          Indicates the current status of WPS in EndPoint.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Error"/>
            <enumeration value="Unconfigured"/>
            <enumeration value="Configured"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Version" access="readOnly" version="2.11">
        <description>
          The Wi-Fi Simple Configuration version supported by the device, a
          string of the form ''m.n'' where ''m'' is the major version and ''n''
          is the minor version.

          For example, a value of ''1.0'' denotes WSC 1.0 and a value of
          ''2.0'' denotes WSC 2.0.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="PIN" access="readWrite" version="2.11">
        <description>
          Represents the Device PIN used for PIN based pairing between WPS
          peers. This PIN is either a four digit number or an eight digit
          number.

          Changed in 2.16: The data type was fixed (it was previously defined
          as an integer that had to have the value 4 or 8).
        </description>
        <syntax secured="true">
          <string>
            <size maxLength="8"/>
            <pattern value="\d{4}|\d{8}" version="2.16"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.EndPoint.{i}.AC.{i}." access="readOnly"
        minEntries="4" maxEntries="4" version="2.8">
      <description>
        This object contains parameters related to WiFi QoS for different
        802.11e access categories (priorities). Access categories are: BE, BK,
        VI, and VO. These parameters can help control and monitor 802.11e
        Enhanced distributed channel access (EDCA). The size of this table is
        fixed, with four entries which are identified by the
        {{param|AccessCategory}} parameter as follows:

        * BE (Best Effort)

        * BK (Background)

        * VI (Video)

        * VO (Voice)
      </description>
      <uniqueKey functional="true">
        <parameter ref="AccessCategory"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="AccessCategory" access="readOnly">
        <description>
          This identifies the access category.
        </description>
        <syntax>
          <string>
            <enumeration value="BE"/>
            <enumeration value="BK"/>
            <enumeration value="VI"/>
            <enumeration value="VO"/>
          </string>
        </syntax>
      </parameter>

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

      <parameter name="AIFSN" access="readWrite" status="deleted">
        <description>
          Arbitration Inter Frame Spacing (Number). This is the number of time
          slots in the arbitration interframe space.

          {{deprecated|2.15|because it is superseded by the WMM Specification}}

          {{obsoleted|2.17}}

          {{deleted|2.18}}
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="2" maxInclusive="15"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ECWMin" access="readWrite" status="deleted">
        <description>
          Exponent of Contention Window (Minimum). This encodes the values of
          CWMin as an exponent: CWMin = 2^ECWMin^ - 1. For example, if ECWMin
          is 8, then CWMin is 2^8^ - 1, or 255, (expressed in {{units}}).

          {{deprecated|2.15|because it is superseded by the WMM Specification}}

          {{obsoleted|2.17}}

          {{deleted|2.18}}
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="15"/>
            <units value="microseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ECWMax" access="readWrite" status="deleted">
        <description>
          Exponent of Contention Window (Maximum). This encodes the values of
          CWMax as an exponent: CWMax = 2^ECWMax^ - 1. For example, if ECWMax
          is 8, then CWMax is 2^8^ - 1, or 255, (expressed in {{units}}).

          {{deprecated|2.15|because it is superseded by the WMM Specification}}

          {{obsoleted|2.17}}

          {{deleted|2.18}}
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="15"/>
            <units value="microseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TxOpMax" access="readWrite" status="deleted">
        <description>
          Maximum transmit opportunity, in multiples of {{units}}. A TXOP time
          interval of 0 means it is limited to a single MAC protocol data unit
          (MPDU).

          {{deprecated|2.15|because it is superseded by the WMM Specification}}

          {{obsoleted|2.17}}

          {{deleted|2.18}}
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
            <units value="32 microseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="AckPolicy" access="readWrite">
        <description>
          Ack Policy, where False="Do Not Acknowledge" and True="Acknowledge"
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="OutQLenHistogramIntervals" access="readWrite">
        <description>
          {{list}} Definition of the histogram intervals for counting the
          transmit queue length in packets. Each value indicates the maximum
          value of the interval. For example, "0,1,4,8," defines the five
          intervals: 0 packets in queue, 1 packet in queue, 2 to 4 packets in
          queue, 5 to 8 packets in queue, and 9 or more packets in queue. (No
          value after the last comma means no upper bound.) If this parameter
          is set to an empty string, no {{param|Stats.OutQLenHistogram}} stats
          will be collected.
        </description>
        <syntax>
          <list/>
          <string/>
        </syntax>
      </parameter>

      <parameter name="OutQLenHistogramSampleInterval" access="readWrite">
        <description>
          The time between recording samples of the current transmit queue
          {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.EndPoint.{i}.AC.{i}.Stats." access="readOnly"
        minEntries="1" maxEntries="1" version="2.8">
      <description>
        This object contains statistics for different 802.11e access categories
        (priorities).

        Packet counters here count 802.11 WiFi frames.

        If there are not separate stats for each access category, (e.g.,
        802.11e is not used and there is only one queue), then only access
        category 0 = BE applies (e.g., the statistics for the single queue are
        in access category 0 = BE).

        The CPE MUST reset the EndPoint's Stats parameters (unless otherwise
        stated in individual object or parameter descriptions) either when the
        EndPoint becomes operationally down due to a previous administrative
        down (i.e. the EndPoint's Status parameter transitions to a Disabled
        state) or when the EndPoint becomes administratively up (i.e. the
        EndPoint's Enable parameter transitions from false to true).
        Administrative and operational status is discussed in
        {{bibref|TR-181i2|Section 4.2.2}}.
      </description>

      <parameter name="BytesSent" access="readOnly">
        <description>
          The total number of {{units}} transmitted in this access category,
          including framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" access="readOnly">
        <description>
          The total number of {{units}} received in this access category,
          including framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" access="readOnly">
        <description>
          The total number of {{units}} transmitted in this access category.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" access="readOnly">
        <description>
          The total number of {{units}} received in this access category.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" access="readOnly">
        <description>
          The total number of outbound {{units}} in this access category that
          could not be transmitted because of errors. These might be due to the
          number of retransmissions exceeding the retry limit, or from other
          causes.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" access="readOnly">
        <description>
          The total number of inbound {{units}} in this access category that
          contained errors preventing them from being delivered to a
          higher-layer protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" access="readOnly">
        <description>
          The total number of outbound {{units}} in this access category 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" access="readOnly">
        <description>
          The total number of inbound {{units}} in this access category 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="RetransCount" access="readOnly">
        <description>
          The total number of transmitted {{units}} in this access category
          which were retransmissions. Two retransmissions of the same packet
          results in this counter incrementing by two.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="OutQLenHistogram" access="readOnly">
        <description>
          {{list}} Histogram of the total length of the transmit queue of this
          access category in packets (1 packet, 2 packets, etc.) according to
          the intervals defined by {{param|#.OutQLenHistogramIntervals}}, with
          samples taken each {{param|#.OutQLenHistogramSampleInterval}}.
          Example: "12,5,1,0,2,0,0,1"
        </description>
        <syntax>
          <list/>
          <string/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Thread." version="2.19">
      <description>
        The Thread object is based on the Thread Group specifications: Thread
        1.3.0 Specification {{bibref|ThreadSpec}}. It defines interface object
        ({{object|Radio}} and {{object|MLE}}), and application object
        ({{object|BorderRouter}}).
      </description>

      <parameter name="BorderRouterNumberOfEntries">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="RadioNumberOfEntries">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MLENumberOfEntries">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="NodeNumberOfEntries">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Thread.BorderRouter.{i}."
        numEntriesParameter="BorderRouterNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.19">
      <description>
        The BorderRouter is capable of forwarding between a Thread Network and
        a non-Thread Network. Each BorderRouter entry is associated with a
        particular Thread Network (or MLE) instance via the
        {{param|MLEReference}} parameter.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="BorderAgentID"/>
      </uniqueKey>

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

      <parameter name="Status">
        <description>
          Indicates the status of this border router.
        </description>
        <syntax>
          <string>
            <enumeration value="Started"/>
            <enumeration value="Stopped"/>
            <enumeration value="Error"/>
          </string>
        </syntax>
      </parameter>

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

      <parameter name="BorderAgentID">
        <description>
          Globally unique ID generated by the Thread Border Router.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="16" maxLength="16"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="MLEReference" access="readWrite">
        <description>
          Define the Thread network to which it belongs.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="#.MLE." targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="RoutingRef" access="readOnly">
        <description>
          Define the routing and forwarding configuration of the BorderRouter,
          in order to access the Thread Network it manages. This is the way to
          manage ::/64 prefix used for global addressing of the mesh network
          (see Thread Specification {{bibref|ThreadIPv6Addressing}} "IPv6
          Address Configuration").
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent=".Routing.Router."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Thread.Radio.{i}."
        numEntriesParameter="RadioNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.19">
      <description>
        This object models an 802.15.4 wireless radio
        ({{bibref|802.15.4-2020}}) on the device (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/>
        </syntax>
      </parameter>

      <parameter name="Status">
        <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}}.

          Because the interface includes layer 1, the {{enum|LowerLayerDown}}
          value SHOULD never be used.
        </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" version="2.19">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name">
        <description>
          The textual name of the interface as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" 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="MaxBitRate">
        <description>
          The maximum upstream and downstream PHY bit rate supported by this
          interface (expressed in {{units}}).
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Upstream">
        <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="TransmitPowerSupported">
        <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
          {{object}} to adjust transmit power accordingly. For example, this
          can be useful for power-save modes such as EU-CoC, where the
          {{object}} can adjust power according to activity in the CPE.
        </description>
        <syntax>
          <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 device).
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="100"/>
            <units value="percentage"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="HardwareVersion">
        <description>
          This radio's Thread hardware version.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="FirmwareVersion">
        <description>
          This radio's Thread firmware version.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Thread.Radio.{i}.Stats." minEntries="1"
        maxEntries="1" version="2.19">
      <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="Reset" access="readWrite">
        <description>
          Set this to {{true}} to reset all this object's statistics counters
          to zero.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BytesSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface,
          including framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface, including
          framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} that could not be transmitted
          because of errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} that contained errors
          preventing them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Thread.MLE.{i}." access="readWrite"
        numEntriesParameter="MLENumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.19">
      <description>
        This object models the Mesh Link Establishment (MLE) (a stackable
        interface object as described in {{bibref|TR-181i2|Section 4.2}}) used
        to establish and configure secure radio link of Thread network.
      </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">
        <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" version="2.19">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name">
        <description>
          The textual name of the interface as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" 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="SupportedStandards">
        <description>
          The items in the list indicate the supported Thread version. The
          associated border router can only support one standard at a time.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="1.0"/>
            <enumeration value="1.1"/>
            <enumeration value="1.2"/>
            <enumeration value="1.3"/>
            <enumeration value="1.4"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="OperatingStandard">
        <description>
          The operating standard this {{object}} instance is configured for.
        </description>
        <syntax>
          <string>
            <enumerationRef targetParam="SupportedStandards"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="DatasetNumberOfEntries">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="AssociatedNodeNumberOfEntries">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Thread.MLE.{i}.Stats." minEntries="1" maxEntries="1"
        version="2.19">
      <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="Reset" access="readWrite">
        <description>
          Set this to {{true}} to reset all this object's statistics counters
          to zero.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BytesSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface,
          including framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface, including
          framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} that could not be transmitted
          because of errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} that contained errors
          preventing them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="ErrorsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="DiscardPacketsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were not addressed to a multicast or broadcast
          address at this layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a multicast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a broadcast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnknownProtoPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received via the interface which were
          discarded because of an unknown or unsupported protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Thread.MLE.{i}.LeaderData." version="2.19">
      <description>
        Indicates the leader data.
      </description>

      <parameter name="DataVersion">
        <description>
          The full Network Data Version the Node currently uses.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LeaderRouterID">
        <description>
          The 8-bit {{param}} the Node attempts to utilize upon becoming a
          router or leader on the Thread network.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="PartitionID">
        <description>
          The Thread Leader Partition ID for the Thread network to which the
          Node is joined.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="StableDataVersion">
        <description>
          The Network Data Version for the stable subset of data the Node
          currently uses.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Weighting">
        <description>
          The Thread Leader weight used when operating in the Leader role.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Thread.MLE.{i}.Dataset.{i}."
        numEntriesParameter="DatasetNumberOfEntries" minEntries="0"
        maxEntries="2" version="2.19">
      <description>
        Thread network configuration parameters are managed using an active and
        one optional pending Operational Dataset objects.

        The active Operational Dataset includes parameters (defined in the
        Thread specification, see {{bibref|ThreadSpec}}) that are currently in
        use across an entire Thread network. The active Operational Dataset
        contains:

        * Timestamp

        * Channel

        * Channel Mask

        * Extended PAN ID

        * Mesh-Local Prefix

        * Network Name

        * PAN ID

        * PSKc

        * Network key

        * Security Policy

        The pending Operational Dataset is used to communicate changes to the
        active Operational Dataset before they take effect. The pending
        Operational Dataset contains all the parameters from the Active
        Operational Dataset, with the addition of: Delay Timer.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Status"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Status">
        <description>
          Indicates the status of this dataset.
        </description>
        <syntax>
          <string>
            <enumeration value="active"/>
            <enumeration value="pending"/>
          </string>
        </syntax>
      </parameter>

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

      <parameter name="TimeStamp">
        <description>
          {{param}} of the dataset, depending status, it represent :

          * Active Timestamp (timestamp of the current dataset)

          * Pending Timestamp
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="DelayTimer">
        <description>
          An unsigned 32-bit number in milliseconds indicate the Time Remaining
          when pending Dataset will be activated. This value MUST be 0 for
          active dataset.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="Channel">
        <description>
          The IEEE 802.15.4 channel value of the interface defined in
          {{bibref|ThreadSpec}} (Thread specification only supports the 2450
          MHz channels).
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="NetworkName">
        <description>
          The name of the network link to the interface.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="PanID">
        <description>
          The IEEE 802.15.4 PAN ID value link to the interface.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="2" maxLength="2"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="ExtendedPanID">
        <description>
          The IEEE 802.15.4 ExtPAN ID value link to the interface.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="8" maxLength="8"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="MeshLocalPrefix">
        <description>
          Indicate the mesh-local IPv6 prefix for the Thread network.
        </description>
        <syntax>
          <dataType ref="IPv6Prefix"/>
        </syntax>
      </parameter>

      <parameter name="ChannelMask">
        <description>
          Indicates the channels within channel page 0, in the 2.4GHz ISM band.
          The channels are represented in most significant bit order, with bit
          value 1 meaning selected, bit value 0 meaning unselected.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="4" maxLength="4"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="PSKc">
        <description>
          Pre-Shared Key Credential for inband commissioning.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="16" maxLength="16"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="NetworkKey">
        <description>
          Key of the network.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="16" maxLength="16"/>
          </hexBinary>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Thread.MLE.{i}.Dataset.{i}.SecurityPolicy."
        version="2.19">
      <description>
        The {{object}} provide an administrator a way to enable or disable
        certain security related behaviors.
      </description>

      <parameter name="RotationTime">
        <description>
          The rotation time of the security policy.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Flags">
        <description>
          The flags indicates the current security policies for the Thread
          partition of the current dataset. The {{param}} is an ordered
          concatenation of case sensitive characters containing list elements
          (may be empty).
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="o">
              <description>
                indicates that obtaining the Network Key for out-of-band
                commissioning is enabled
              </description>
            </enumeration>
            <enumeration value="n">
              <description>
                indicates that Native Commissioning using PSKc is allowed
              </description>
            </enumeration>
            <enumeration value="r">
              <description>
                indicates that Thread 1.x Routers are enabled
              </description>
            </enumeration>
            <enumeration value="c">
              <description>
                indicates that external Commissioner authentication is allowed
                using PSKc
              </description>
            </enumeration>
            <enumeration value="C">
              <description>
                Indicates that Thread 1.2 Commercial Commissioning is enabled
              </description>
            </enumeration>
            <enumeration value="e">
              <description>
                indicate that autonomous Enrollment is enabled
              </description>
            </enumeration>
            <enumeration value="p">
              <description>
                indicate that Network Key Provisioning is enabled
              </description>
            </enumeration>
            <enumeration value="R">
              <description>
                indicates the Thread Network supports Commercial Commissioning
                Mode : CCM
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Thread.MLE.{i}.AssociatedNode.{i}."
        numEntriesParameter="AssociatedNodeNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.19">
      <description>
        A table of the nodes currently associated to the Thread network defined
        by this {{object|##.MLE.}} instance. This includes the host nodes.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="ExtendedMAC"/>
      </uniqueKey>

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

      <parameter name="LastContactTime">
        <description>
          The date and time in UTC when associated Thread node on the device
          has received data from remote node.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="ExtendedMAC">
        <description>
          Unique MacID of the node.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="16" maxLength="16"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="Rloc16">
        <description>
          Rloc of the node.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RoutingRole">
        <description>
          The current state of the Thread node.
        </description>
        <syntax>
          <string>
            <enumeration value="Child">
              <description>
                if the associated node is a Child, the {{object|Neighbor}} and
                {{object|Route}} tables MUST be empty
              </description>
            </enumeration>
            <enumeration value="Router"/>
            <enumeration value="Leader"/>
            <enumeration value="Unassigned"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Mode">
        <description>
          Thread Device mode value.
        </description>
        <syntax>
          <string>
            <enumeration value="rx-on-when-idle" code="1"/>
            <enumeration value="Full Thread Device" code="2"/>
            <enumeration value="Full Network Data" code="3"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="RouteNumberOfEntries">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="NeighborNumberOfEntries">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="IPv6AddressNumberOfEntries">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Thread.MLE.{i}.AssociatedNode.{i}.Neighbor.{i}."
        numEntriesParameter="NeighborNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.19">
      <description>
        Entries in this table reference nodes that are immediate neighbors of
        the associated node instance. This table is empty if the
        {{param|#.RoutingRole}} is not a {{enum|Router|#.RoutingRole}} or
        {{enum|Leader|#.RoutingRole}}.
      </description>
      <uniqueKey functional="false">
        <parameter ref="NodeReference"/>
      </uniqueKey>

      <parameter name="NodeReference">
        <description>
          References the Thread node that is an immediate neighbor of the
          {{object|##.AssociatedNode}}. By construction the
          {{param|#.RoutingRole}} of {{object|##.AssociatedNode}} MUST be
          {{enum|Router|#.RoutingRole}} or {{enum|Leader|#.RoutingRole}}.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="##.AssociatedNode."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="AvgRSSI">
        <description>
          The average Received Signal Strength Indicator (RSSI) is the average
          measurement of the signal strength received by the parent router node
          from the neighbor node.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Thread.MLE.{i}.AssociatedNode.{i}.Route.{i}."
        numEntriesParameter="RouteNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.19">
      <description>
        Entries in this table depend on the associated node routing
        capabilities defined by the {{param|#.RoutingRole}} and
        {{param|#.Mode}} according to the Thread Specification (i.e. a child
        node has an empty {{object}} table). It maintains information for each
        link to Router neighbor as follows: 

        * the Router ID assigned to that neighbor.

        * the routing cost.

        * the incoming link quality metric calculated from the measured link
          margin for messages received from the neighbor.

        * the incoming link quality metric reported by the neighbor for
          messages arriving from this Router.
      </description>
      <uniqueKey functional="false">
        <parameter ref="ID"/>
      </uniqueKey>

      <parameter name="ID">
        <description>
          Router ID of the route table entry.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="PathCost">
        <description>
          The routing cost advertised by the Next Hop to reach {{param|ID}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LQIn">
        <description>
          Link Quality for messages received from {{param|ID}}, depending on
          the Link Margin value average of the received relative signal
          strength.
        </description>
        <syntax>
          <dataType ref="ThreadLinkQuality"/>
        </syntax>
      </parameter>

      <parameter name="LQOut">
        <description>
          Link Quality for messages sent to {{param|ID}}, depending on the Link
          Margin value average of the sent relative signal strength.
        </description>
        <syntax>
          <dataType ref="ThreadLinkQuality"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Thread.MLE.{i}.AssociatedNode.{i}.IPv6Address.{i}."
        numEntriesParameter="IPv6AddressNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.19">
      <description>
        This object represents the list of IPv6 addresses associated with the
        Thread node.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
        <parameter ref="IPAddress"/>
      </uniqueKey>

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

      <parameter name="Type">
        <description>
          The IPv6 address may by of one the following types. Enumeration of:

          * LinkLocal (Address reachable by a single radio transmission with
            the prefixes fe80::/16).

          * MeshLocal (Address reachable within the same Thread network with
            the prefix defined by the Thread network).

          * Global (Address reachable from outside a Thread network with the
            prefix provided by the Border Router).
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="IPAddress">
        <description>
          Router ID of the route table entry.
        </description>
        <syntax>
          <dataType ref="IPv6Address"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Thread.Node.{i}."
        numEntriesParameter="NodeNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.19">
      <description>
        The table of nodes hosted on the device.
      </description>
      <uniqueKey functional="false">
        <parameter ref="ExtendedMAC"/>
      </uniqueKey>

      <parameter name="ExtendedMAC">
        <description>
          Unique MacID of the node.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="16" maxLength="16"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="Connected" access="readWrite">
        <description>
          The connectivity status. When {{true}} this {{object}} instance
          participates to the Thread network referenced by
          {{param|MLEReference}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MLEReference">
        <description>
          Connect the node to the Thread network managed by the Mesh Link
          Established.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="#.MLE." targetType="row"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.ZigBee." access="readOnly" minEntries="1"
        maxEntries="1" version="2.7">
      <description>
        Top level object for ZigBee capabilities based on the
        {{bibref|ZigBee2007}} specification.
      </description>

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

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

    <object name="Device.ZigBee.Interface.{i}."
        numEntriesParameter="InterfaceNumberOfEntries" minEntries="0"
        maxEntries="unbounded" dmr:fixedObject="true" version="2.7">
      <description>
        ZigBee interface table (a stackable interface object as described in
        {{bibref|TR-181i2|Section 4.2}}). This table models the ZigBee
        interface of a ZigBee end device, ZigBee router or ZigBee coordinator.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Name"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="ZDOReference"/>
      </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">
        <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}}.

          Because the interface includes layer 1, the {{enum|LowerLayerDown}}
          value SHOULD never be used.
        </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" version="2.7">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name">
        <description>
          The textual name of the interface as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" 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" version="2.19">
        <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" version="2.19">
        <description>
          The maximum upstream and downstream PHY bit rate supported by this
          interface (expressed in {{units}}).
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="IEEEAddress" access="readOnly"
          activeNotify="forceDefaultEnabled">
        <description>
          The IEEE address assigned to this interface. A value of
          "FF:FF:FF:FF:FF:FF:FF:FF" indicates that this address is unknown.
          This parameter has the same value as the
          {{param|#.ZDO.{i}.IEEEAddress}} parameter of the ZDO instance
          {{param|ZDOReference}} is pointing to.
        </description>
        <syntax>
          <dataType ref="IEEE_EUI64"/>
        </syntax>
      </parameter>

      <parameter name="NetworkAddress" access="readOnly">
        <description>
          The ZigBee network address assigned to this interface. This parameter
          has the same value as the {{param|#.ZDO.{i}.NetworkAddress}}
          parameter of the ZDO instance {{param|ZDOReference}} is pointing to.
        </description>
        <syntax>
          <dataType ref="ZigBeeNetworkAddress"/>
        </syntax>
      </parameter>

      <parameter name="ZDOReference" access="readOnly">
        <description>
          The ZigBee Device Object assigned to this interface.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="#.ZDO." targetType="row"/>
          </string>
        </syntax>
      </parameter>

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

    <object name="Device.ZigBee.Interface.{i}.Stats." minEntries="1"
        maxEntries="1" version="2.7">
      <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="Reset" access="readWrite" version="2.19">
        <description>
          Set this to {{true}} to reset all this object's statistics counters
          to zero.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BytesSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface,
          including framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface, including
          framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} that could not be transmitted
          because of errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} that contained errors
          preventing them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="ErrorsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="DiscardPacketsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were not addressed to a multicast or broadcast
          address at this layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a multicast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a broadcast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnknownProtoPacketsReceived" activeNotify="canDeny"
          version="2.19">
        <description>
          The total number of {{units}} received via the interface which were
          discarded because of an unknown or unsupported protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnknownPacketsReceived" access="readOnly"
          status="deprecated" activeNotify="canDeny">
        <description>
          The total number of {{units}} received which were discarded because
          of an unknown or unsupported protocol.

          {{deprecated|2.19|because its name is a typo of
          {{param|UnknownProtoPacketsReceived}}}}
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="ZigBee packets"/>
          </dataType>
        </syntax>
      </parameter>
    </object>

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

        {{keys}}

        It is possible that instances of this object have the same key value
        when the value of {{param|IEEEAddress}} parameter is
        "FF:FF:FF:FF:FF:FF:FF:FF" and the ZigBee Coordinators on two or more
        separate area networks assign the same value for the
        {{param|NetworkAddress}}. This is because the ZigBee specification
        describes only intra-area network topologies
        {{bibref|ZigBee2007|Section 1.1.4 Network Topology}}. As such if two or
        more {{object}} instances have the same key value the implementation is
        undefined.
      </description>
      <uniqueKey functional="true">
        <parameter ref="IEEEAddress"/>
        <parameter ref="NetworkAddress"/>
      </uniqueKey>

      <parameter name="IEEEAddress" access="readOnly">
        <description>
          The IEEE address assigned to this device. A value of
          "FF:FF:FF:FF:FF:FF:FF:FF" indicates that this address is unknown.
        </description>
        <syntax>
          <dataType ref="IEEE_EUI64"/>
        </syntax>
      </parameter>

      <parameter name="NetworkAddress" access="readOnly">
        <description>
          The ZigBee network address assigned to this device.
        </description>
        <syntax>
          <dataType ref="ZigBeeNetworkAddress"/>
        </syntax>
      </parameter>

      <parameter name="Active" access="readOnly">
        <description>
          Whether or not this device is currently present in the ZigBee network
          as defined in {{bibref|ZigBee2007|section 2.4.4.1}}.

          The ability to list inactive devices is OPTIONAL. If the CPE includes
          inactive devices in this table, {{param}} MUST be set to {{false}}
          for each inactive device. The length of time an inactive device
          remains listed in this table is a local matter to the CPE.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="ZDOReference" access="readOnly">
        <description>
          The ZigBee Device Object assigned to this interface.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="##.ZDO." targetType="row"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.ZigBee.ZDO.{i}." access="readOnly"
        numEntriesParameter="ZDONumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.7">
      <description>
        ZigBee Device Object (ZDO) provides management capabilities of the
        ZigBee Application Support (APS) and Network (NWK) layers of a ZigBee
        Device as defined in {{bibref|ZigBee2007|section 2.5}}.

        {{keys}}

        It is possible that instances of this object have the same key value
        when the value of {{param|IEEEAddress}} parameter is
        "FF:FF:FF:FF:FF:FF:FF:FF" and the ZigBee Coordinators on two or more
        separate area networks assign the same value for the
        {{param|NetworkAddress}}. This is because the ZigBee specification
        describes only intra-area network topologies
        {{bibref|ZigBee2007|Section 1.1.4 Network Topology}}. As such if two or
        more {{object}} instances have the same key value the implementation is
        undefined
      </description>
      <uniqueKey functional="true">
        <parameter ref="IEEEAddress"/>
        <parameter ref="NetworkAddress"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="IEEEAddress" access="readOnly">
        <description>
          The IEEE address assigned to this device. A value of
          "FF:FF:FF:FF:FF:FF:FF:FF" indicates that this address is unknown.
        </description>
        <syntax>
          <dataType ref="IEEE_EUI64"/>
        </syntax>
      </parameter>

      <parameter name="NetworkAddress" access="readOnly">
        <description>
          The ZigBee network address assigned to this device.
        </description>
        <syntax>
          <dataType ref="ZigBeeNetworkAddress"/>
        </syntax>
      </parameter>

      <parameter name="BindingTableNumberOfEntries" access="readOnly"
          dmr:customNumEntriesParameter="true">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

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

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

    <object name="Device.ZigBee.ZDO.{i}.NodeDescriptor." access="readOnly"
        minEntries="1" maxEntries="1" version="2.7">
      <description>
        The {{object}} object describes the node capabilities of the ZigBee
        device as defined in {{bibref|ZigBee2007|section 2.3.2.3 Node
        Descriptor}}.
      </description>

      <parameter name="LogicalType" access="readOnly">
        <description>
          The type of ZigBee device that is extracted from the Logical Type
          Field as defined in {{bibref|ZigBee2007|Table 2.29}}.

          {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="ZC">
              <description>ZigBee Coordinator</description>
            </enumeration>
            <enumeration value="ZR">
              <description>ZigBee Router</description>
            </enumeration>
            <enumeration value="ZED">
              <description>ZigBee End Device</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="ComplexDescriptorSupported" access="readOnly">
        <description>
          When {{true}}, specifies that the {{object|#.ComplexDescriptor}}
          object is supported for this ZigBee device.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="UserDescriptorSupported" access="readOnly">
        <description>
          When {{true}}, specifies that the {{object|#.UserDescriptor}} object
          is supported for this ZigBee device.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="FrequencyBand" access="readOnly">
        <description>
          Specifies the frequency bands that are supported by the underlying
          IEEE 802.15.4 radio utilized by the ZigBee device.

          {{list}} {{enum}}
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="868-868.6">
              <description>The 868-868.6 MHz Band</description>
            </enumeration>
            <enumeration value="902-928">
              <description>The 902-928 MHz Band</description>
            </enumeration>
            <enumeration value="2400-2483.5">
              <description>The 2400-2483.5 MHz Band</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="MACCapability" access="readOnly">
        <description>
          Specifies the IEEE 802.15.4-2003 MAC sub-layer capabilities for this
          ZigBee device.

          {{list}} {{enum}}
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="AlternatePANCoordinator">
              <description>Alternate PAN Coordinator</description>
            </enumeration>
            <enumeration value="FFD">
              <description>Full Function Device</description>
            </enumeration>
            <enumeration value="MainsPowerSource">
              <description>
                The current power source is mains power
              </description>
            </enumeration>
            <enumeration value="OnWhenIdle">
              <description>The receiver is on when idle</description>
            </enumeration>
            <enumeration value="SecureCommunication">
              <description>Secure communication is enabled</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="ManufactureCode" access="readOnly">
        <description>
          Specifies a manufacturer code that is allocated by the ZigBee
          Alliance, relating the manufacturer to the device.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MaximumBufferSize" access="readOnly">
        <description>
          Specifies the maximum buffer size, in {{units}}, of the network
          sub-layer data unit (NSDU) for this ZigBee device.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="128"/>
            <units value="octets"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MaximumIncomingTransferSize" access="readOnly">
        <description>
          Specifies the maximum size, in {{units}}, of the application
          sub-layer data unit (ASDU) that can be transferred to this ZigBee
          device in one single message transfer.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="32768"/>
            <units value="octets"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MaximumOutgoingTransferSize" access="readOnly">
        <description>
          Specifies the maximum size, in {{units}}, of the application
          sub-layer data unit (ASDU) that can be transferred from this ZigBee
          device in one single message transfer.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="32768"/>
            <units value="octets"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ServerMask" access="readOnly">
        <description>
          Specifies the system server capabilities of this ZigBee device.

          {{list}} {{enum}}
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="PrimaryTrustCenter"/>
            <enumeration value="PrimaryBindingTableCache"/>
            <enumeration value="BackupBindingTableCache"/>
            <enumeration value="PrimaryDiscoveryCache"/>
            <enumeration value="BackupDiscoveryCache"/>
            <enumeration value="NetworkManager"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="DescriptorCapability" access="readOnly">
        <description>
          Specifies the descriptor capabilities of this ZigBee device.

          {{list}} {{enum}}
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="ExtendedActiveEndpointListAvailable"/>
            <enumeration value="ExtendedSimpleDescriptorListAvailable"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.ZigBee.ZDO.{i}.PowerDescriptor." access="readOnly"
        minEntries="1" maxEntries="1" version="2.7">
      <description>
        The {{object}} object describes the power capabilities of the ZigBee
        device as defined in {{bibref|ZigBee2007|section 2.3.2.4 Node Power
        Descriptor}}.
      </description>

      <parameter name="CurrentPowerMode" access="readOnly">
        <description>
          Specifies the current sleep/power-saving mode of the ZigBee device.

          {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="Synchronized"/>
            <enumeration value="Periodic"/>
            <enumeration value="Manual"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="AvailablePowerSource" access="readOnly">
        <description>
          Specifies the power sources available on this ZigBee device.

          {{list}} {{enum}}
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="Constant">
              <description>Constant (mains) power</description>
            </enumeration>
            <enumeration value="Rechargeable">
              <description>Rechargeable battery</description>
            </enumeration>
            <enumeration value="Disposable">
              <description>Disposable battery</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="CurrentPowerSource" access="readOnly">
        <description>
          The current power source field specifies the current power source
          being utilized by the node.

          {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="Constant">
              <description>Constant (mains) power</description>
            </enumeration>
            <enumeration value="Rechargeable">
              <description>Rechargeable battery</description>
            </enumeration>
            <enumeration value="Disposable">
              <description>Disposable battery</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="CurrentPowerSourceLevel" access="readOnly">
        <description>
          Specifies the level of charge of the current power source.

          {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="Critical">
              <description>Critical battery state</description>
            </enumeration>
            <enumeration value="33">
              <description>Battery state is 33 percent</description>
            </enumeration>
            <enumeration value="66">
              <description>Battery state is 66 percent</description>
            </enumeration>
            <enumeration value="100">
              <description>Battery state is 100 percent</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.ZigBee.ZDO.{i}.UserDescriptor." access="readOnly"
        minEntries="1" maxEntries="1" dmr:noUniqueKeys="true" version="2.7">
      <description>
        The {{object}} object is an optional descriptor that describes user
        defined capabilities of the ZigBee device as defined in
        {{bibref|ZigBee2007|section 2.3.2.7 User Descriptor}}. The {{object}}
        object contains information that allows the user to identify the device
        using a user-friendly character string, such as "Bedroom TV" or "Stairs
        Light".
      </description>

      <parameter name="DescriptorAvailable" access="readOnly">
        <description>
          When {{true}}, the User Descriptor recorded has been received from
          the target device.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Description" access="readOnly">
        <description>
          Specifies the information that allows the user to identify the ZigBee
          device using a user-friendly character string, such as "Bedroom TV"
          or "Stairs light".
        </description>
        <syntax>
          <string>
            <size maxLength="16"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.ZigBee.ZDO.{i}.ComplexDescriptor." access="readOnly"
        minEntries="1" maxEntries="1" dmr:noUniqueKeys="true" version="2.7">
      <description>
        The {{object}} object is an optional descriptor that describes extended
        capabilities of the ZigBee device as defined in
        {{bibref|ZigBee2007|section 2.3.2.6 Complex Descriptor}}.
      </description>

      <parameter name="DescriptorAvailable" access="readOnly">
        <description>
          When {{true}}, the Complex Descriptor recorded has been received from
          the target device.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Language" access="readOnly">
        <description>
          Specifies the ISO 639-1 language code as defined in
          {{bibref|ISO639-1}}.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="CharacterSet" access="readOnly">
        <description>
          Specifies the ISO 646 character set as defined in
          {{bibref|ISO646-1991}}.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="ManufacturerName" access="readOnly">
        <description>
          Specifies the name of the manufacturer of the ZigBee device.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="ModelName" access="readOnly">
        <description>
          Specifies the name of the manufacturer's model of the ZigBee device.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="SerialNumber" access="readOnly">
        <description>
          Specifies the manufacturer's serial number of the ZigBee device.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="DeviceURL" access="readOnly">
        <description>
          Specifies the {{datatype}} through which more information relating to
          the ZigBee device can be obtained.
        </description>
        <syntax>
          <dataType ref="URL"/>
        </syntax>
      </parameter>

      <parameter name="Icon" access="readOnly">
        <description>
          The icon field contains an octet string which carries the data for an
          icon that can represent the ZigBee device. The format of the icon
          MUST be a 32-by-32-pixel PNG image.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="65535"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="IconURL" access="readOnly">
        <description>
          Specifies the {{datatype}} through which the icon for the ZigBee
          device can be obtained.
        </description>
        <syntax>
          <dataType ref="URL"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.ZigBee.ZDO.{i}.Security." access="readOnly"
        minEntries="1" maxEntries="1" version="2.7">
      <description>
        The {{object}} object provides the configuration capabilities needed to
        perform the Security Management functionality defined in
        {{bibref|ZigBee2007|section 4 Security Management}}.
      </description>

      <parameter name="TrustCenterAddress" access="readOnly">
        <description>
          Specifies the IEEE address of a special device trusted by devices
          within a ZigBee network to distribute keys for the purpose of network
          and end-to-end application configuration management.
        </description>
        <syntax>
          <dataType ref="IEEE_EUI64"/>
        </syntax>
      </parameter>

      <parameter name="SecurityLevel" access="readOnly">
        <description>
          Specifies how an outgoing frame is to be secured, how an incoming
          frame purportedly has been secured; it also indicates whether or not
          the payload is encrypted and to what extent data authenticity over
          the frame is provided, as reflected by the length of the message
          integrity code (MIC).

          {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="None"/>
            <enumeration value="MIC-32"/>
            <enumeration value="MIC-64"/>
            <enumeration value="MIC-128"/>
            <enumeration value="ENC"/>
            <enumeration value="ENC-MIC-32"/>
            <enumeration value="ENC-MIC-64"/>
            <enumeration value="ENC-MIC-128"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="TimeOutPeriod" access="readOnly">
        <description>
          The period of time, in {{units}}, that this ZigBee device will wait
          for an expected security protocol frame.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="65535"/>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.ZigBee.ZDO.{i}.Network." access="readOnly"
        minEntries="1" maxEntries="1" version="2.7">
      <description>
        The {{object}} object provides the configuration capabilities needed to
        by a ZigBee Device to operate within a ZigBee Area Network as defined
        in {{bibref|ZigBee2007|section 2.5.2.4 Network Manager}}.
      </description>

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

    <object name="Device.ZigBee.ZDO.{i}.Network.Neighbor.{i}."
        access="readOnly" numEntriesParameter="NeighborNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.7">
      <description>
        The {{object}} object provides the configuration capabilities needed to
        by a ZigBee Device to operate within a ZigBee Area Network as defined
        in {{bibref|ZigBee2007|section 2.5.2.4 Network Manager}}.
      </description>
      <uniqueKey functional="true">
        <parameter ref="Neighbor"/>
      </uniqueKey>

      <parameter name="Neighbor" access="readOnly">
        <description>
          Neighbor of this ZigBee device. The value MUST be the path name of a
          row in the ZigBee.ZDO table. If the referenced row is deleted then
          this entry MUST be deleted.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="##" targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LQI" access="readOnly" activeNotify="canDeny">
        <description>
          The LQI field specified link quality identification (LQI) for
          neighbor ZigBee device.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Relationship" access="readOnly">
        <description>
          The relationship between the neighbor and this device.{{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="Parent"/>
            <enumeration value="Child"/>
            <enumeration value="PrevChild"/>
            <enumeration value="Sibling"/>
            <enumeration value="None"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="PermitJoin" access="readOnly">
        <description>
          An indication of whether the neighbor device is accepting join
          requests.{{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="Accepting"/>
            <enumeration value="NotAccepting"/>
            <enumeration value="Unknown"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Depth" access="readOnly">
        <description>
          The tree depth of the neighbor device. A value of 0x00 indicates that
          the device is the ZigBee coordinator for the network.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.ZigBee.ZDO.{i}.NodeManager." access="readOnly"
        minEntries="1" maxEntries="1" version="2.7">
      <description>
        The {{object}} object describes the configuration capabilities related
        for remote management of the ZigBee Area Network as defined in
        {{bibref|ZigBee2007|section 2.5.2.6 Node Manager}}.
      </description>

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

    <object name="Device.ZigBee.ZDO.{i}.NodeManager.RoutingTable.{i}."
        access="readOnly" numEntriesParameter="RoutingTableNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.7">
      <description>
        The {{object}} object describes the route table as defined in
        {{bibref|ZigBee2007|table 3.51 Routing Table Entry}}.
      </description>
      <uniqueKey functional="true">
        <parameter ref="DestinationAddress"/>
      </uniqueKey>

      <parameter name="DestinationAddress" access="readOnly">
        <description>
          The ZigBee network address of this route.
        </description>
        <syntax>
          <string>
            <size maxLength="4"/>
            <pattern value="([0-9A-Fa-f]){4}"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="NextHopAddress" access="readOnly"
          activeNotify="canDeny">
        <description>
          Specifies the network address of the next hop ZigBee device on the
          way to the destination ZigBee device.
        </description>
        <syntax>
          <dataType ref="ZigBeeNetworkAddress"/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The status of the route entry. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="Active"/>
            <enumeration value="DiscoveryUnderway"/>
            <enumeration value="DiscoveryFailed"/>
            <enumeration value="Inactive"/>
            <enumeration value="ValidationUnderway"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="MemoryConstrained" access="readOnly">
        <description>
          A flag indicating whether the device is a memory constrained
          concentrator.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="ManyToOne" access="readOnly">
        <description>
          A flag indicating that the destination is a concentrator that issued
          a many to-one request.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="RouteRecordRequired" access="readOnly">
        <description>
          A flag indicating that a route record command frame should be sent to
          the destination prior to the next data packet.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.ZigBee.ZDO.{i}.Binding.{i}." access="readWrite"
        numEntriesParameter="BindingTableNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded"
        version="2.7">
      <description>
        The {{object}} object describes the configuration capabilities related
        to maintaining a ZigBee Device's Binding Table as defined in
        {{bibref|ZigBee2007|section 2.2.8.2 Binding}}.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the use of this binding on the device.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

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

      <parameter name="SourceEndpoint" access="readWrite">
        <description>
          Specifies the source endpoint used in this binding entry.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="240"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SourceAddress" access="readWrite">
        <description>
          Specifies the source address used in this binding entry.
        </description>
        <syntax>
          <dataType ref="IEEE_EUI64"/>
        </syntax>
      </parameter>

      <parameter name="ClusterId" access="readWrite">
        <description>
          Specifies the cluster identifier used in this binding entry.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="DestinationAddressMode" access="readWrite">
        <description>
          Specifies the type of destination address used for this binding
          entry. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="Group"/>
            <enumeration value="Endpoint"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="DestinationEndpoint" access="readWrite">
        <description>
          Specifies the destination endpoint for the binding entry. The value
          of this field is valid when the value of the
          {{param|DestinationAddressMode}} is
          {{enum|Endpoint|DestinationAddressMode}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="240"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="IEEEDestinationAddress" access="readWrite">
        <description>
          Specifies the IEEE destination address for this binding entry. The
          value of this field is valid when the value of the
          {{param|DestinationAddressMode}} is
          {{enum|Endpoint|DestinationAddressMode}}.
        </description>
        <syntax>
          <dataType ref="IEEE_EUI64"/>
        </syntax>
      </parameter>

      <parameter name="GroupDestinationAddress" access="readWrite">
        <description>
          Specifies the group destination address for this binding entry. The
          value of this field is valid when the value of the
          {{param|DestinationAddressMode}} is
          {{enum|Group|DestinationAddressMode}}.
        </description>
        <syntax>
          <dataType ref="ZigBeeNetworkAddress"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.ZigBee.ZDO.{i}.Group.{i}." access="readWrite"
        numEntriesParameter="GroupNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.7">
      <description>
        The {{object}} object describes the configuration capabilities related
        to maintaining a ZigBee Device's Group Table as defined in
        {{bibref|ZigBee2007|section 2.5.2.7 Group Manager}}.
      </description>
      <uniqueKey functional="true">
        <parameter ref="GroupId"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the use of this group on the device.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

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

      <parameter name="GroupId" access="readWrite">
        <description>
          The Group Identifier for this object as defined in
          {{bibref|ZigBee2007|table 2.25 Group Table Entry Format}}.
        </description>
        <syntax>
          <dataType ref="ZigBeeNetworkAddress"/>
        </syntax>
      </parameter>

      <parameter name="EndpointList" access="readWrite">
        <description>
          The list of application endpoints assigned as a member of this
          {{object}} object.
        </description>
        <syntax>
          <list/>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="#.ApplicationEndpoint."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.ZigBee.ZDO.{i}.ApplicationEndpoint.{i}."
        access="readWrite"
        numEntriesParameter="ApplicationEndpointNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded"
        version="2.7">
      <description>
        The {{object}} object describes the application endpoint as defined in
        {{bibref|ZigBee2007|section 2.1.2 Application Framework}}.
      </description>
      <uniqueKey functional="true">
        <parameter ref="EndpointId"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the use of this application endpoint on the
          device.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

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

      <parameter name="EndpointId" access="readWrite">
        <description>
          The Endpoint Identifier for this object as defined in
          {{bibref|ZigBee2007|section 2.1.2 Application Framework}}.

          An {{object}} with an {{param}} value of 0 is designated as the
          device application: This is a special application that is responsible
          for device operation and contains logic to manage the device's
          networking and general maintenance features.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="240"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.ZigBee.ZDO.{i}.ApplicationEndpoint.{i}.SimpleDescriptor."
        access="readOnly" minEntries="1" maxEntries="1" version="2.7">
      <description>
        The {{object}} object contains the attributes of the Simple Descriptor
        of an application endpoint, as defined in {{bibref|ZigBee2007|section
        2.3.2.5 Simple Descriptor}}.
      </description>

      <parameter name="ProfileId" access="readWrite">
        <description>
          Specifies the application profile that is supported on this endpoint.
          Application profiles are agreements for messages, message formats,
          andprocessing actions that enable developers to create an
          interoperable, distributed application employing application entities
          that reside on separate ZigBee devices. These application profiles
          enable applications to send commands, request data, and process
          commands and requests as defined in {{bibref|ZigBee2007|section
          2.1.2.1 Application Profiles}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="DeviceId" access="readOnly">
        <description>
          Application device identifier, as defined in
          {{bibref|ZigBee2007|section 2.3.2.5.3 Application Device Identifier
          Field}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="DeviceVersion" access="readOnly">
        <description>
          Application device version, as defined in {{bibref|ZigBee2007|section
          2.3.2.5.4 Application Device Version Field}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="15"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="InputClusterList" access="readWrite">
        <description>
          {{list}} Specifies the input cluster identifiers to be matched by the
          ZigBee coordinator by remote Zigbee device's output cluster list for
          this {{object}} object.
        </description>
        <syntax>
          <list/>
          <unsignedInt>
            <range maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="OutputClusterList" access="readWrite">
        <description>
          {{list}} Specifies the output cluster identifiers to be matched by
          the ZigBee coordinator by remote Zigbee device's input cluster list
          for this {{object}} object.
        </description>
        <syntax>
          <list/>
          <unsignedInt>
            <range maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.ZigBee.Discovery." access="readOnly" minEntries="1"
        maxEntries="1" version="2.7">
      <description>
        This object is used for managing the discovery of ZigBee devices within
        a ZigBee Area Network. ZigBee Devices are discovered via the
        {{object|#.ZDO}} instance associated with the ZigBee Coordinator of an
        Area Network.
      </description>

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

    <object name="Device.ZigBee.Discovery.AreaNetwork.{i}." access="readWrite"
        numEntriesParameter="AreaNetworkNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded"
        version="2.7">
      <description>
        This object specifies the ZigBee devices that are discovered by the
        {{param|Coordinator}}.

        As the ZigBee specification does not provide a discovery protocol
        between the CWMP proxy and the ZigBee coordinator, the {{object}}
        object is provisioned and not discovered.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="Coordinator"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables discovery of the ZigBee devices in this
          {{object}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="LastUpdate" access="readOnly">
        <description>
          The date and time when this {{object}} or its member devices (i.e.,
          the devices with ZDOs listed in {{param|ZDOList}}) were updated due
          to a discovery operation.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The status of the current discovery operation.

          {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="Indeterminate">
              <description>
                The discovery operation has not been executed and there are no
                valid discovery results available)
              </description>
            </enumeration>
            <enumeration value="InProgress"/>
            <enumeration value="Success"/>
            <enumeration value="Error"/>
            <enumeration value="Error_Timeout" optional="true"/>
          </string>
        </syntax>
      </parameter>

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

      <parameter name="Coordinator" access="readWrite">
        <description>
          The Fully Qualified Domain Name (FQDN) or IP address of the ZigBee
          Coordinator. The coordinator MAY be located within the CPE. In this
          scenario the Controller or CPE MAY use the value of "localhost".
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ZDOReference" access="readOnly">
        <description>
          The ZDO object for this device that is used to discover the ZigBee
          capabilities of attached devices.

          {{reference}}
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="##.ZDO." targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ZDOList" access="readOnly">
        <description>
          The list of ZDO objects discovered in this Area Network by the ZigBee
          Coordinator.

          {{reference}}
        </description>
        <syntax>
          <list/>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="##.ZDO." targetType="row"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Bridging." access="readOnly" minEntries="1"
        maxEntries="1" version="2.0">
      <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-2011}} 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.

        802.1Q {{bibref|802.1Q-2011}} bridges incorporate 802.1Q
        {{bibref|802.1Q-2005}} customer and 802.1ad {{bibref|802.1ad-2005}}
        provider bridges.
      </description>

      <parameter name="MaxBridgeEntries" access="readOnly">
        <description>
          The maximum number of entries available in the {{object|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|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-2011}} entries available
          in the {{object|Bridge}} table. A non-zero 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-2011}} VLANs supported
          per {{object|Bridge}} table entry.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MaxProviderBridgeEntries" access="readOnly"
          version="2.7">
        <description>
          The maximum number of entries available in the
          {{object|ProviderBridge}} table. A non-zero value for this parameter
          implies support for 802.1Q Provider Bridges.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ProviderBridgeNumberOfEntries" access="readOnly"
          version="2.7">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MaxFilterEntries" access="readOnly">
        <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" version="2.0">
      <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" version="2.0">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name" access="readOnly" version="2.16">
        <description>
          The textual name of the bridge as assigned by the device.
        </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>
            <enumeration value="802.1Q-2011">
              <description>
                The {{object}} provides support for at least one feature
                defined in {{bibref|802.1Q-2011}} that was not defined in
                {{bibref|802.1Q-2005}}.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="AgingTime" access="readWrite" version="2.16">
        <description>
          The timeout period in {{units}} for aging out dynamically-learned
          forwarding information as described in {{bibref|802.1Q-2011|Section
          7.9.2}}.

          The Dynamic Filtering Entries are not modeled. They are part of the
          bridge's internal Forwarding Database.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
            <range minInclusive="10" maxInclusive="1000000"/>
          </unsignedInt>
          <default type="object" value="300"/>
        </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" version="2.0">
      <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 automatically
        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 interface.

          This parameter is based on ''ifAdminStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Status">
        <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" version="2.0">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name">
        <description>
          The textual name of the interface as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" 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}}.

          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 Controller 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="Type" access="readWrite" version="2.7">
        <description>
          The type of bridge port as defined in 802.1Q
          {{bibref|802.1Q-2011|Section 17 IEEE8021BridgePortType}}.

          Enumeration of:

          {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="ProviderNetworkPort">
              <description>
                Indicates this {{object}} is an S-TAG aware port of a
                {{object|##.ProviderBridge}}.
              </description>
            </enumeration>
            <enumeration value="CustomerNetworkPort">
              <description>
                Indicates this {{object}} is an S-TAG aware port of a
                {{object|##.ProviderBridge}}.
              </description>
            </enumeration>
            <enumeration value="CustomerEdgePort">
              <description>
                Indicates this {{object}} is an C-TAG aware port of a
                {{object|##.ProviderBridge}}.
              </description>
            </enumeration>
            <enumeration value="CustomerVLANPort">
              <description>
                Indicates this {{object}} is an C-TAG aware port of a Customer
                Bridge.
              </description>
            </enumeration>
            <enumeration value="VLANUnawarePort">
              <description>
                Indicates this {{object}} is a VLAN unaware member of an
                {{enum|802.1D-2004|#.Standard}} bridge.
              </description>
            </enumeration>
          </string>
        </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">
            <size/>
          </list>
          <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-2011}}.
        </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-2011}}).

          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="TPID" access="readWrite" version="2.7">
        <description>
          The Tag Protocol Identifier (TPID) assigned to this {{object}}. The
          TPID is an EtherType value used to identify the frame as a tagged
          frame.

          Standard {{bibref|802.1Q-2011|Table 9.1}} TPID values are:

          *S-TAG 0x88A8 = 34984

          *C-TAG 0x8100 = 33024

          Non-Standard TPID values are:

          *S-TAG 0x9100 = 37120
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="33024"/>
        </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-2011}}). {{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-2011}}. 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="ServiceAccessPrioritySelection" access="readWrite"
          version="2.7">
        <description>
          This parameter controls the Service Access Priority selection
          function as described in {{bibref|802.1Q-2011|section 6.13}}.

          The parameter is applicable to deployments of {{object|##.Bridge}}
          instances that are referenced by
          {{param|###.Bridging.ProviderBridge.{i}.SVLANcomponent}}.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="ServiceAccessPriorityTranslation" access="readWrite"
          version="2.7">
        <description>
          {{list}} List items represent service access priority translation
          values for each ingress priority on this {{object}} as described in
          {{bibref|802.1Q-2011|section 6.13}}.

          The parameter is applicable to deployments of {{object|##.Bridge}}
          instances that are referenced by
          {{param|###.Bridging.ProviderBridge.{i}.SVLANcomponent}}.
        </description>
        <syntax>
          <list minItems="8" maxItems="8">
            <size/>
          </list>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="7"/>
          </unsignedInt>
          <default type="object" value="[0,1,2,3,4,5,6,7]"/>
        </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>

      <parameter name="PathCost" access="readWrite" version="2.16">
        <description>
          The Port’s contribution, when it is the Root Port, to the Root Path
          Cost for the Bridge as described in {{bibref|802.1D-2004|Section
          17.13.11}}.

          This parameter apply only when
          {{param|###.Bridging.Bridge.{i}.STP.Enable}} is {{true}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Priority" access="readWrite" version="2.16">
        <description>
          The first four components of the Port’s port priority vector value as
          described in {{bibref|802.1D-2004|Section 17.19.21}}.

          This parameter apply only when
          {{param|###.Bridging.Bridge.{i}.STP.Enable}} is {{true}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="240" step="16"/>
          </unsignedInt>
          <default type="object" value="128"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Bridging.Bridge.{i}.Port.{i}.Stats." minEntries="1"
        maxEntries="1" version="2.0">
      <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="Reset" access="readWrite" version="2.19">
        <description>
          Set this to {{true}} to reset all this object's statistics counters
          to zero.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BytesSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface,
          including framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface, including
          framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} that could not be transmitted
          because of errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} that contained errors
          preventing them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="ErrorsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="DiscardPacketsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were not addressed to a multicast or broadcast
          address at this layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a multicast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a broadcast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnknownProtoPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received via the interface which were
          discarded because of an unknown or unsupported protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Bridging.Bridge.{i}.Port.{i}.PriorityCodePoint."
        access="readOnly" minEntries="1" maxEntries="1" version="2.7">
      <description>
        {{object}} provides the management control for the processing of the
        Priority Code Point (PCP) field for the 802.1Q header as defined in
        {{bibref|802.1Q-2011|section 6.9.3 Priority Code Point Encoding}}.

        The object is applicable to deployments of
        {{object|####.Bridging.ProviderBridge}} where the {{object|###.Bridge}}
        instance is referenced by
        {{param|####.Bridging.ProviderBridge.{i}.SVLANcomponent}} or
        {{param|####.Bridging.ProviderBridge.{i}.CVLANcomponents}} parameters.
      </description>

      <parameter name="PCPSelection" access="readWrite">
        <description>
          This parameter identifies the row in the {{param|PCPEncoding}} and
          {{param|PCPDecoding}} parameter lists. The value of 1 points to the
          8P0D row in the corresponding parameter lists.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="4"/>
          </unsignedInt>
          <default type="object" value="1"/>
        </syntax>
      </parameter>

      <parameter name="UseDEI" access="readWrite">
        <description>
          This parameter controls the processing of the drop_eligible field and
          is described in {{bibref|802.1Q-2011|section 6.9.3}}.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="RequireDropEncoding" access="readWrite">
        <description>
          This parameter controls the processing of the encoding or decoding of
          the drop_eligible component in the PCP field and is described in
          {{bibref|802.1Q-2011|section 8.6.7}}.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="PCPEncoding" access="readWrite">
        <description>
          This parameter provides the management control for the processing of
          the encoding of the Priority Code Point (PCP) field for the 802.1Q
          header as defined in {{bibref|802.1Q-2011|section 6.9.3 Priority Code
          Point Encoding}} and {{bibref|802.1Q-2011|Table 6-3}}.

          The list is an ordered list that contains entries for the following 4
          PCP Values: "8P0D","7P1D", "6P2D" "5P3D". Each list entry matches the
          following pattern:

          {{pattern}}

          The value of this parameter MUST use square brackets to protect comma
          separators within nested lists. For example, this corresponds to
          Table 6-3 (mentioned above):

          :
            [7,7,6,6,5,5,4,4,3,3,2,2,1,1,0,0],[7,7,6,6,5,4,5,4,3,3,2,2,1,1,0,0],[7,7,6,6,5,4,5,4,3,2,3,2,1,1,0,0],[7,7,6,6,5,4,5,4,3,2,3,2,1,0,1,0]
        </description>
        <syntax>
          <list minItems="4" maxItems="4" nestedBrackets="required">
            <size/>
          </list>
          <string>
            <size minLength="31" maxLength="31"/>
            <pattern value="([0-7],){15}[0-7]">
              <description>
                PCP for each priority and drop_eligible field (7, 7DE, 6, 6DE,
                ..., 1, 1DE, 0, 0DE)
              </description>
            </pattern>
          </string>
        </syntax>
      </parameter>

      <parameter name="PCPDecoding" access="readWrite">
        <description>
          This parameter provides the management control for the processing of
          the decoding of the Priority Code Point (PCP) field for the 802.1Q
          header as defined in {{bibref|802.1Q-2011|section 6.9.3 Priority Code
          Point Encoding}} and {{bibref|802.1Q-2011|Table 6-4}}.

          The list is an ordered list that contains entries for the following 4
          PCP Values: "8P0D","7P1D", "6P2D" "5P3D". Each list entry matches the
          following pattern:

          {{pattern}}

          The value of this parameter MUST use square brackets to protect comma
          separators within nested lists. For example, this corresponds to
          Table 6-4 (mentioned above):

          :
            [7,0,6,0,5,0,4,0,3,0,2,0,1,0,0,0],[7,0,6,0,4,0,4,1,3,0,2,0,1,0,0,0],[7,0,6,0,4,0,4,1,2,0,2,1,1,0,0,0],[7,0,6,0,4,0,4,1,2,0,2,1,0,0,0,1]
        </description>
        <syntax>
          <list minItems="4" maxItems="4" nestedBrackets="required">
            <size/>
          </list>
          <string>
            <size minLength="15" maxLength="15"/>
            <pattern value="([0-7],[0-1],){7}[0-7],[0-1]">
              <description>
                Priority (0-7) and drop_eligible field (0-1) for each PCP value
                (7, 6, ..., 1, 0).
              </description>
            </pattern>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Bridging.Bridge.{i}.STP." access="readOnly"
        minEntries="1" maxEntries="1" version="2.16">
      <description>
        STP (Spanning Tree Algorithm and Protocol) / RSTP (Rapid Spanning Tree
        Algorithm and Protocol) bridge configuration as defined in
        {{bibref|802.1D-2004}} and {{bibref|802.1Q-2011}}.
      </description>

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

      <parameter name="Status" access="readOnly">
        <description>
          The status of the STP for this Bridge.

          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="Protocol" access="readWrite">
        <description>
          Protocol to use.
        </description>
        <syntax>
          <string>
            <enumeration value="STP"/>
            <enumeration value="RSTP"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="BridgePriority" access="readWrite">
        <description>
          Value of the priority part of the Bridge Identifier as described in
          {{bibref|802.1D-2004|Section 17.18.3 Bridge priority}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="61440" step="4096"/>
          </unsignedInt>
          <default type="object" value="32768"/>
        </syntax>
      </parameter>

      <parameter name="HelloTime" access="readWrite">
        <description>
          The interval in {{units}} between periodic transmissions of
          Configuration Messages by Designated Ports as described in
          {{bibref|802.1D-2004|Section 17.13.6}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="centiseconds"/>
            <range minInclusive="100" maxInclusive="1000"/>
          </unsignedInt>
          <default type="object" value="200"/>
        </syntax>
      </parameter>

      <parameter name="MaxAge" access="readWrite">
        <description>
          The maximum age in {{units}} of the information transmitted by the
          Bridge when it is the Root Bridge as described in
          {{bibref|802.1D-2004|Section 17.13.8}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="centiseconds"/>
            <range minInclusive="600" maxInclusive="4000"/>
          </unsignedInt>
          <default type="object" value="2000"/>
        </syntax>
      </parameter>

      <parameter name="ForwardingDelay" access="readWrite">
        <description>
          The minimum delay in {{units}} a port should be listening before
          entering Forwarding PortState as defined in
          {{bibref|802.1D-2004|Section 17.29.2}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
            <range minInclusive="4" maxInclusive="30"/>
          </unsignedInt>
          <default type="object" value="15"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Bridging.Bridge.{i}.VLAN.{i}." access="readWrite"
        numEntriesParameter="VLANNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.0">
      <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-2011}} Bridge.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <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" version="2.0">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </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" version="2.0">
      <description>
        Bridge VLAN egress port and untagged port membership table.

        This table only applies to an 802.1Q {{bibref|802.1Q-2011}} 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 functional="true">
        <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" version="2.0">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </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" version="2.0">
      <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-2011}} Bridges.

        For enabled table entries, if {{param|Bridge}} or {{param|Interface}}
        is {{empty}} then the table entry is inoperable and the CPE MUST set
        {{param|Status}} to {{enum|Error_Misconfigured|Status}}.

        Several of this object's parameters specify DHCP option values. Some
        cases are version neutral (the parameter can apply to both DHCPv4 and
        DHCPv6), but in other cases the representation of the option is
        different for DHCPv4 and DHCPv6, so it is necessary to define separate
        DHCPv4-specific and DHCPv6-specific parameters. Therefore, an instance
        of this object that uses DHCP option values as filter criteria will be
        associated with either DHCPv4 or DHCPv6, as indicated by the
        {{param|DHCPType}} parameter.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="Alias" access="readWrite" version="2.0">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </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|#.Bridge}} object in case of a 802.1D bridge
          or a {{object|#.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>
          {{datatype|expand}}

          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.
        </description>
        <syntax>
          <dataType ref="Order"/>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite">
        <description>
          {{reference}} This MUST relate to the same bridge as does
          {{param|Bridge}}.

          Defines the Bridge Port on which ingress frame classification will
          occur.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="#.Bridge.{i}.Port."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DHCPType" access="readWrite" version="2.2">
        <description>
          The DHCP protocol associated with the {{object}} instance. Affects
          only parameters that specify DHCP option values as filter criteria
          (all such parameter descriptions note this fact). {{enum}}

          If {{param}} is {{enum|DHCPv4}}, then {{object}} parameters that are
          DHCPv6-specific are ignored. If {{param}} is {{enum|DHCPv6}}, then
          {{object}} parameters that are DHCPv4-specific are ignored.
        </description>
        <syntax>
          <string>
            <enumeration value="DHCPv4"/>
            <enumeration value="DHCPv6"/>
          </string>
          <default type="object" value="DHCPv4"/>
        </syntax>
      </parameter>

      <parameter name="VLANIDFilter" access="readWrite">
        <description>
          Classification criterion.

          The 802.1Q {{bibref|802.1Q-2011}} 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-2011}} 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-2011}} 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-2011}} 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-2011}} support classification based on source MAC
          address.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="true"/>
        </syntax>
      </parameter>

      <parameter name="DestMACAddressFilterList" access="readWrite">
        <description>
          Classification criterion.

          {{list}} Each list item specifies a MAC Address. List items MAY
          optionally specify a bit-mask after the MAC Address, where matching
          of a packet's MAC address is only to be done for bit positions set to
          one in the mask. If no mask is specified, all bits of the MAC Address
          are to be used for matching.

          For example, the list might be: ''01:02:03:04:05:06,
          1:22:33:00:00:00/FF:FF:FF:00:00:00, 88:77:66:55:44:33''
        </description>
        <syntax>
          <list>
            <size maxLength="512"/>
          </list>
          <string/>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>

      <parameter name="DestMACAddressFilterExclude" access="readWrite">
        <description>
          If {{false}}, on ingress to the interfaces associated with this
          Filter, the Bridge admits only those packets whose destination MAC
          Address matches one of the {{param|DestMACAddressFilterList}}
          entries. If the {{param|DestMACAddressFilterList}} is empty, no
          packets are admitted.

          If {{true}}, on ingress to the interfaces associated with this
          Filter, the Bridge admits all packets except those packets whose
          destination MAC Address matches one of the
          {{param|DestMACAddressFilterList}} entries. If the
          {{param|DestMACAddressFilterList}} is empty, packets are admitted
          regardless of MAC address.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="true"/>
        </syntax>
      </parameter>

      <parameter name="SourceMACFromVendorClassIDFilter" access="readWrite">
        <description>
          Classification criterion.

          A string used to identify one or more devices via DHCP for which MAC
          address filtering would subsequently apply. A device is considered
          matching if its DHCPv4 Vendor Class Identifier (Option 60 as defined
          in {{bibref|RFC2132}}) in the most recent DHCP lease acquisition or
          renewal matches the specified value according to the match criterion
          in {{param|SourceMACFromVendorClassIDMode}}. Case sensitive.

          This is a normal string, e.g. "abc" is represented as "abc" and not
          "616263" hex. However, if the value includes non-printing characters
          then such characters have to be represented using XML escapes, e.g.

          #x0a for line-feed.

          Note that neither 802.1D {{bibref|802.1D-2004}} nor 802.1Q
          {{bibref|802.1Q-2011}} support classification based on source MAC
          address.

          Note: This parameter is DHCPv4-specific. It only applies when
          {{param|DHCPType}} is {{enum|DHCPv4|DHCPType}}.
        </description>
        <syntax>
          <string>
            <size maxLength="255"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SourceMACFromVendorClassIDFilterv6" access="readWrite"
          version="2.2">
        <description>
          Classification criterion.

          A hexbinary string used to identify one or more devices via DHCP for
          which MAC address filtering would subsequently apply. A device is
          considered matching if the most recent DHCPv6 Vendor Class Identifier
          (Option 16 as defined in {{bibref|RFC8415}}) 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-2011}} support classification based on source MAC
          address.

          Note: This parameter is DHCPv6-specific. It only applies when
          {{param|DHCPType}} is {{enum|DHCPv6|DHCPType}}.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="65535"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SourceMACFromVendorClassIDFilterExclude"
          access="readWrite">
        <description>
          If {{false}}, on ingress to the interfaces associated with this
          Filter, the Bridge admits only those packets whose source MAC Address
          matches that of a LAN device previously identified as described in
          {{param|SourceMACFromVendorClassIDFilter}} (for
          {{enum|DHCPv4|DHCPType}}) or
          {{param|SourceMACFromVendorClassIDFilterv6}} (for
          {{enum|DHCPv6|DHCPType}}). If this corresponding filter parameter is
          {{empty}}, no packets are admitted.

          If {{true}}, on ingress to the interfaces associated with this
          Filter, the Bridge admits all packets except those packets whose
          source MAC Address matches that of a LAN device previously identified
          as described in {{param|SourceMACFromVendorClassIDFilter}} (for
          {{enum|DHCPv4|DHCPType}}) or
          {{param|SourceMACFromVendorClassIDFilterv6}} (for
          {{enum|DHCPv6|DHCPType}}). If this corresponding filter parameter is
          {{empty}}, packets are admitted regardless of MAC address.

          Note that neither 802.1D {{bibref|802.1D-2004}} nor 802.1Q
          {{bibref|802.1Q-2011}} 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
          this parameter 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-2011}} support classification based on source MAC
          address.
        </description>
        <syntax>
          <string>
            <enumeration value="Exact"/>
            <enumeration value="Prefix"/>
            <enumeration value="Suffix"/>
            <enumeration value="Substring"/>
          </string>
          <default type="object" value="Exact"/>
        </syntax>
      </parameter>

      <parameter name="DestMACFromVendorClassIDFilter" access="readWrite">
        <description>
          Classification criterion.

          A string used to identify one or more devices via DHCP for which MAC
          address filtering would subsequently apply. A device is considered
          matching if its DHCPv4 Vendor Class Identifier (Option 60 as defined
          in {{bibref|RFC2132}}) in the most recent DHCP lease acquisition or
          renewal matches the specified value according to the match criterion
          in {{param|DestMACFromVendorClassIDMode}}. Case sensitive.

          This is a normal string, e.g. "abc" is represented as "abc" and not
          say "616263" hex. However, if the value includes non-printing
          characters then such characters have to be represented using XML
          escapes, e.g. #x0a for line-feed.

          Note: This parameter is DHCPv4-specific. It only applies when
          {{param|DHCPType}} is {{enum|DHCPv4|DHCPType}}.
        </description>
        <syntax>
          <string>
            <size maxLength="255"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DestMACFromVendorClassIDFilterv6" access="readWrite"
          version="2.2">
        <description>
          Classification criterion.

          A hexbinary string used to identify one or more devices via DHCP for
          which MAC address filtering would subsequently apply. A device is
          considered matching if the most recent DHCPv6 Vendor Class Identifier
          (Option 16 as defined in {{bibref|RFC8415}}) was equal to the
          specified value. The option value is binary, so an exact match is
          REQUIRED.

          Note: This parameter is DHCPv6-specific. It only applies when
          {{param|DHCPType}} is {{enum|DHCPv6|DHCPType}}.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="65535"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DestMACFromVendorClassIDFilterExclude"
          access="readWrite">
        <description>
          If {{false}}, on ingress to the interfaces associated with this
          Filter, the Bridge admits only those packets whose destination MAC
          Address matches that of a LAN device previously identified as
          described in {{param|DestMACFromVendorClassIDFilter}} (for
          {{enum|DHCPv4|DHCPType}}) or
          {{param|DestMACFromVendorClassIDFilterv6}} (for
          {{enum|DHCPv6|DHCPType}}). If this corresponding filter parameter is
          {{empty}}, no packets are admitted.

          If {{true}}, on ingress to the interfaces associated with this
          Filter, the Bridge admits all packets except those packets whose
          destination MAC Address matches that of a LAN device previously
          identified as described in {{param|DestMACFromVendorClassIDFilter}}
          (for {{enum|DHCPv4|DHCPType}}) or
          {{param|DestMACFromVendorClassIDFilterv6}} (for
          {{enum|DHCPv6|DHCPType}}). If this corresponding filter parameter is
          {{empty}}, packets are admitted regardless of MAC address.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="true"/>
        </syntax>
      </parameter>

      <parameter name="DestMACFromVendorClassIDMode" access="readWrite">
        <description>
          {{param|DestMACFromVendorClassIDFilter}} pattern match criterion.
          {{enum}}

          For example, if {{param|DestMACFromVendorClassIDFilter}} is
          ''Example'' then an Option 60 value of "Example device" will match
          with {{param}} values of {{enum|Prefix}} or {{enum|Substring}}, but
          not with {{enum|Exact}} or {{enum|Suffix}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Exact"/>
            <enumeration value="Prefix"/>
            <enumeration value="Suffix"/>
            <enumeration value="Substring"/>
          </string>
          <default type="object" value="Exact"/>
        </syntax>
      </parameter>

      <parameter name="SourceMACFromClientIDFilter" access="readWrite">
        <description>
          Classification criterion.

          A hexbinary string used to identify one or more devices via DHCP for
          which MAC address filtering would subsequently apply. A device is
          considered matching if the most recent DHCP Client Identifier (via
          DHCP lease acquisition or renewal for DHCPv4) was equal to the
          specified value. The DHCP Client Identifier is Option 61 (as defined
          in {{bibref|RFC2132}}) for {{enum|DHCPv4|DHCPType}}, or is Option 1
          (as defined in {{bibref|RFC8415}}) for {{enum|DHCPv6|DHCPType}}. The
          option value is binary, so an exact match is REQUIRED.

          Note that neither 802.1D {{bibref|802.1D-2004}} nor 802.1Q
          {{bibref|802.1Q-2011}} support classification based on source MAC
          address.

          Note: DHCPv4 Option values are limited to a length of 255, while
          DHCPv6 Option values can have a maximum length of 65535.

          Note: This parameter is DHCP version neutral. The specific DHCP
          version in use with this parameter is indicated by
          {{param|DHCPType}}.

          Note: DHCPv6 Option 1 (Client Identifier) is sometimes referred to as
          ''DUID''.
        </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-2011}} support classification based on source MAC
          address.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="true"/>
        </syntax>
      </parameter>

      <parameter name="DestMACFromClientIDFilter" access="readWrite">
        <description>
          Classification criterion.

          A hexbinary string used to identify one or more devices via DHCP for
          which MAC address filtering would subsequently apply. A device is
          considered matching if the most recent DHCP Client Identifier (via
          DHCP lease acquisition or renewal for DHCPv4) was equal to the
          specified value. The DHCP Client Identifier is Option 61 (as defined
          in {{bibref|RFC2132}}) for {{enum|DHCPv4|DHCPType}}, or is Option 1
          (as defined in {{bibref|RFC8415}}) for {{enum|DHCPv6|DHCPType}}. The
          option value is binary, so an exact match is REQUIRED.

          Note: DHCPv4 Option values are limited to a length of 255, while
          DHCPv6 Option values can have a maximum length of 65535.

          Note: This parameter is DHCP version neutral. The specific DHCP
          version in use with this parameter is indicated by
          {{param|DHCPType}}.

          Note: DHCPv6 Option 1 (Client Identifier) is sometimes referred to as
          ''DUID''.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="65535"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DestMACFromClientIDFilterExclude" access="readWrite">
        <description>
          If {{false}}, on ingress to the interfaces associated with this
          Filter, the Bridge admits only those packets whose destination MAC
          Address matches that of a LAN device previously identified as
          described in {{param|DestMACFromClientIDFilter}}. If
          {{param|DestMACFromClientIDFilter}} is {{empty}}, no packets are
          admitted.

          If {{true}}, on ingress to the interfaces associated with this
          Filter, the Bridge admits all packets except those packets whose
          destination MAC Address matches that of a LAN device previously
          identified as described in {{param|DestMACFromClientIDFilter}}. If
          the {{param|DestMACFromClientIDFilter}} is {{empty}}, packets are
          admitted regardless of MAC address.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="true"/>
        </syntax>
      </parameter>

      <parameter name="SourceMACFromUserClassIDFilter" access="readWrite">
        <description>
          Classification criterion.

          A hexbinary string used to identify one or more devices via DHCP for
          which MAC address filtering would subsequently apply. A device is
          considered matching if the most recent DHCP User Class Identifier
          (via DHCP lease acquisition or renewal for DHCPv4) was equal to the
          specified value. The DHCP User Class Identifier is Option 77 (as
          defined in {{bibref|RFC3004}}) for {{enum|DHCPv4|DHCPType}}, or is
          Option 15 (as defined in {{bibref|RFC8415}}) for
          {{enum|DHCPv6|DHCPType}}. The option value is binary, so an exact
          match is REQUIRED.

          Note that neither 802.1D {{bibref|802.1D-2004}} nor 802.1Q
          {{bibref|802.1Q-2011}} support classification based on source MAC
          address.

          Note: DHCPv4 Option values are limited to a length of 255, while
          DHCPv6 Option values can have a maximum length of 65535.

          Note: This parameter is DHCP version neutral. The specific DHCP
          version in use with this parameter is indicated by
          {{param|DHCPType}}.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="65535"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SourceMACFromUserClassIDFilterExclude"
          access="readWrite">
        <description>
          If {{false}}, on ingress to the interfaces associated with this
          Filter, the Bridge admits only those packets whose source MAC Address
          matches that of a LAN device previously identified as described in
          {{param|SourceMACFromUserClassIDFilter}}. If
          {{param|SourceMACFromUserClassIDFilter}} is {{empty}}, no packets are
          admitted.

          If {{true}}, on ingress to the interfaces associated with this
          Filter, the Bridge admits all packets except those packets whose
          source MAC Address matches that of a LAN device previously identified
          as described in {{param|SourceMACFromUserClassIDFilter}}. If the
          {{param|SourceMACFromUserClassIDFilter}} is {{empty}}, packets are
          admitted regardless of MAC address.

          Note that neither 802.1D {{bibref|802.1D-2004}} nor 802.1Q
          {{bibref|802.1Q-2011}} support classification based on source MAC
          address.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="true"/>
        </syntax>
      </parameter>

      <parameter name="DestMACFromUserClassIDFilter" access="readWrite">
        <description>
          Classification criterion.

          A hexbinary string used to identify one or more devices via DHCP for
          which MAC address filtering would subsequently apply. A device is
          considered matching if the most recent DHCP User Class Identifier
          (via DHCP lease acquisition or renewal for DHCPv4) was equal to the
          specified value. The DHCP User Class Identifier is Option 77 (as
          defined in {{bibref|RFC3004}}) for {{enum|DHCPv4|DHCPType}}, or is
          Option 15 (as defined in {{bibref|RFC8415}}) for
          {{enum|DHCPv6|DHCPType}}. The option value is binary, so an exact
          match is REQUIRED.

          Note: DHCPv4 Option values are limited to a length of 255, while
          DHCPv6 Option values can have a maximum length of 65535.

          Note: This parameter is DHCP version neutral. The specific DHCP
          version in use with this parameter is indicated by
          {{param|DHCPType}}.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="65535"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DestMACFromUserClassIDFilterExclude" access="readWrite">
        <description>
          If {{false}}, on ingress to the interfaces associated with this
          Filter, the Bridge admits only those packets whose destination MAC
          Address matches that of a LAN device previously identified as
          described in {{param|DestMACFromUserClassIDFilter}}. If
          {{param|DestMACFromUserClassIDFilter}} is {{empty}}, no packets are
          admitted.

          If {{true}}, on ingress to the interfaces associated with this
          Filter, the Bridge admits all packets except those packets whose
          destination MAC Address matches that of a LAN device previously
          identified as described in {{param|DestMACFromUserClassIDFilter}}. If
          the {{param|DestMACFromUserClassIDFilter}} is {{empty}}, packets are
          admitted regardless of MAC address.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="true"/>
        </syntax>
      </parameter>

      <parameter name="DestIP" access="readWrite" version="2.6">
        <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" version="2.6">
        <description>
          Destination IP address mask, represented as an IP routing prefix
          using CIDR notation [RFC4632]. The IP address part MUST be {{empty}}
          (and, if specified, MUST be ignored).
        </description>
        <syntax>
          <dataType ref="IPPrefix"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DestIPExclude" access="readWrite" version="2.6">
        <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" version="2.6">
        <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" version="2.6">
        <description>
          Source IP address mask, represented as an IP routing prefix using
          CIDR notation [RFC4632]. The IP address part MUST be an empty string
          (and, if specified, MUST be ignored).
        </description>
        <syntax>
          <dataType ref="IPPrefix"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SourceIPExclude" access="readWrite" version="2.6">
        <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" version="2.6">
        <description>
          Classification criterion.

          Protocol number. A value of -1 indicates this criterion is not used
          for classification.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="255"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="ProtocolExclude" access="readWrite" version="2.6">
        <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" version="2.6">
        <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" version="2.6">
        <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" version="2.6">
        <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" version="2.6">
        <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" version="2.6">
        <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" version="2.6">
        <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>
    </object>

    <object name="Device.Bridging.ProviderBridge.{i}." access="readWrite"
        numEntriesParameter="ProviderBridgeNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded"
        version="2.7">
      <description>
        Provider Bridge table.

        A Provider Bridge is described in {{bibref|802.1Q-2011|section 5.10
        Provider Bridge conformance}} as an entity that is comprised of one
        S-VLAN component and zero or more C-VLAN components. S-VLAN and C-VLAN
        components are modelled as instances of {{object|#.Bridge}} objects.

        When {{param|Type}} is configured with value of {{enum|PE|Type}} VLAN
        tags from the S-VLAN component (outer of 2 VLAN tags) are stacked on
        top of the VLAN tag from the C-VLAN component (inner of 2 VLAN tags).

        When {{param|Type}} is configured with value of {{enum|S-VLAN|Type}}
        only VLAN tags from the S-VLAN component are utilized.
      </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_Misconfigured}} value indicates that a necessary
          configuration value is undefined or invalid. For example when the
          {{param|Type}} is configured with value of {{enum|PE|Type}} but
          {{param|CVLANcomponents}} is {{empty}}.

          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" version="2.7">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Type" access="readWrite">
        <description>
          Selects the standard supported by this {{object}} table entry.
        </description>
        <syntax>
          <string>
            <enumeration value="S-VLAN">
              <description>
                Provider Bridge conforming to {{bibref|802.1Q-2011|5.10.1
                S-VLAN Bridge conformance}}
              </description>
            </enumeration>
            <enumeration value="PE">
              <description>
                Provider Bridge conforming to {{bibref|802.1Q-2011|5.10.2
                Provider Edge Bridge conformance}}
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="SVLANcomponent" access="readWrite">
        <description>
          {{reference|a {{object|#.Bridge}} instance that specifies the S-VLAN
          component for the {{object}}}}
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="#.Bridge."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="CVLANcomponents" access="readWrite">
        <description>
          {{list}} {{reference|a {{object|#.Bridge}} instance that specifies a
          C-VLAN component for the {{object}}}}
        </description>
        <syntax>
          <list/>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="#.Bridge."
                targetType="row"/>
          </string>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.PPP." access="readOnly" minEntries="1" maxEntries="1"
        version="2.0">
      <description>
        Point-to-Point Protocol {{bibref|RFC1661}}. This object contains the
        {{object|Interface}} table.
      </description>

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

      <parameter name="SupportedNCPs" access="readOnly" version="2.2">
        <description>
          The Network Control Protocols (NCPs) that are supported by the
          device. {{enum}}

          Note that {{enum|IPv6CP}} is an IPv6 capability.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="ATCP">
              <description>
                AppleTalk Control Protocol {{bibref|RFC1378}}
              </description>
            </enumeration>
            <enumeration value="IPCP">
              <description>{{bibref|RFC1332}}</description>
            </enumeration>
            <enumeration value="IPXCP">
              <description>{{bibref|RFC1552}}</description>
            </enumeration>
            <enumeration value="NBFCP">
              <description>{{bibref|RFC2097}}</description>
            </enumeration>
            <enumeration value="IPv6CP">
              <description>{{bibref|RFC5072}}</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.PPP.Interface.{i}." access="readWrite"
        numEntriesParameter="InterfaceNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.0">
      <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">
        <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" version="2.0">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name">
        <description>
          The textual name of the interface as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" 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"
          dmr:previousParameter="LowerLayers">
        <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 command="true">
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="ConnectionStatus" access="readOnly">
        <description>
          Current status of the connection.
        </description>
        <syntax>
          <string>
            <enumeration value="Unconfigured"/>
            <enumeration value="Connecting"/>
            <enumeration value="Authenticating"/>
            <enumeration value="Connected"/>
            <enumeration value="PendingDisconnect"/>
            <enumeration value="Disconnecting"/>
            <enumeration value="Disconnected"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastConnectionError" access="readOnly">
        <description>
          The cause of failure for the last connection setup attempt.
        </description>
        <syntax>
          <string>
            <enumeration value="ERROR_NONE"/>
            <enumeration value="ERROR_ISP_TIME_OUT"/>
            <enumeration value="ERROR_COMMAND_ABORTED"/>
            <enumeration value="ERROR_NOT_ENABLED_FOR_INTERNET"/>
            <enumeration value="ERROR_BAD_PHONE_NUMBER"/>
            <enumeration value="ERROR_USER_DISCONNECT"/>
            <enumeration value="ERROR_ISP_DISCONNECT"/>
            <enumeration value="ERROR_IDLE_DISCONNECT"/>
            <enumeration value="ERROR_FORCED_DISCONNECT"/>
            <enumeration value="ERROR_SERVER_OUT_OF_RESOURCES"/>
            <enumeration value="ERROR_RESTRICTED_LOGON_HOURS"/>
            <enumeration value="ERROR_ACCOUNT_DISABLED"/>
            <enumeration value="ERROR_ACCOUNT_EXPIRED"/>
            <enumeration value="ERROR_PASSWORD_EXPIRED"/>
            <enumeration value="ERROR_AUTHENTICATION_FAILURE"/>
            <enumeration value="ERROR_NO_DIALTONE"/>
            <enumeration value="ERROR_NO_CARRIER"/>
            <enumeration value="ERROR_NO_ANSWER"/>
            <enumeration value="ERROR_LINE_BUSY"/>
            <enumeration value="ERROR_UNSUPPORTED_BITSPERSECOND"/>
            <enumeration value="ERROR_TOO_MANY_LINE_ERRORS"/>
            <enumeration value="ERROR_IP_CONFIGURATION"/>
            <enumeration value="ERROR_UNKNOWN"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="AutoDisconnectTime" access="readWrite">
        <description>
          The time in {{units}} since the establishment of the connection after
          which connection termination is automatically initiated by the CPE.
          This occurs irrespective of whether the connection is being used or
          not. A value of 0 (zero) indicates that the connection is not to be
          shut down automatically.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="IdleDisconnectTime" access="readWrite">
        <description>
          The time in {{units}} that if the connection remains idle, the CPE
          automatically terminates the connection. A value of 0 (zero)
          indicates that the connection is not to be shut down automatically.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="WarnDisconnectDelay" access="readWrite">
        <description>
          Time in {{units}} the {{param|ConnectionStatus}} remains in the
          {{enum|PendingDisconnect|ConnectionStatus}} state before
          transitioning to disconnecting state to drop the connection.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Username" access="readWrite">
        <description>
          Username to be used for authentication.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Password" access="readWrite">
        <description>
          Password to be used for authentication.
        </description>
        <syntax secured="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="None" version="2.19"/>
            <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">
        <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="readWrite">
        <description>
          A PPP LCP Echo Request is sent every {{param}} {{units}}. A value 0
          means that no LCP Echo Requests are sent. {{bibref|RFC1661|5.8
          Echo-Request and Echo-Reply}} describes the relevant LCP Echo frames.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LCPEchoRetry" access="readWrite">
        <description>
          Applicable only when {{param|LCPEcho}} is greater than 0. When number
          of consecutive {{param}} LCP Echo Replies have been missed. The
          remote peer will be assumed dead and the connection will be
          terminated.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="LCPEchoAdaptive" access="readWrite" version="2.16">
        <description>
          When traffic is received during the {{param|LCPEcho}} interval, no
          LCP Echo-Request is sent until the next {{param|LCPEcho}} interval.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="true"/>
        </syntax>
      </parameter>

      <parameter name="IPCPEnable" access="readWrite" version="2.2">
        <description>
          Enables or disables IPCP ({{bibref|RFC1332}}) on this interface. If
          this parameter is present, {{enum|IPCP|#.SupportedNCPs}} MUST be
          included in {{param|#.SupportedNCPs}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="IPv6CPEnable" access="readWrite" version="2.2">
        <description>
          Enables or disables IPv6CP ({{bibref|RFC5072}}) on this interface. If
          this parameter is present, {{enum|IPv6CP|#.SupportedNCPs}} MUST be
          included in {{param|#.SupportedNCPs}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.PPP.Interface.{i}.Stats." minEntries="1"
        maxEntries="1" version="2.0">
      <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="Reset" access="readWrite" version="2.19">
        <description>
          Set this to {{true}} to reset all this object's statistics counters
          to zero.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BytesSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface,
          including framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface, including
          framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} that could not be transmitted
          because of errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} that contained errors
          preventing them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="ErrorsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="DiscardPacketsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were not addressed to a multicast or broadcast
          address at this layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a multicast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a broadcast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnknownProtoPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received via the interface which were
          discarded because of an unknown or unsupported protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>
    </object>

    <object name="Device.PPP.Interface.{i}.PPPoE." access="readOnly"
        minEntries="0" maxEntries="1" version="2.0"
        dmr:noDiscriminatorParameter="true">
      <description>
        PPPoE object that functionally groups PPPoE related parameters.

        PPPoE is only applicable when the lower layer provides Ethernet frames,
        e.g. ATM with EoA, PTM, or anything else that supports an Ethernet MAC.
      </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" version="2.0">
      <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">
            <size/>
          </list>
          <dataType ref="IPv4Address"/>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>

      <parameter name="PassthroughEnable" access="readWrite">
        <description>
          If {{false}}, the PPP Interface retrieved information is configured
          on the IP Interface stacked on top of this PPP Interface.

          If {{true}}, the PPP Interface retrieved information is propagated to
          the parameters in the referenced {{param|PassthroughDHCPPool}}
          object, replacing any existing configuration (including
          ''MinAddress'', ''MaxAddress'', ''SubnetMask'', ''IPRouters'', and
          ''DNSServers'').
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="PassthroughDHCPPool" access="readWrite">
        <description>
          {{reference}}When {{param}} is set to {{empty}},
          {{param|PassthroughEnable}} MUST be set to {{false}} (i.e.
          passthrough can not be enabled without a pool reference specified).
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="###.DHCPv4.Server.Pool."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.PPP.Interface.{i}.IPv6CP." access="readOnly"
        minEntries="1" maxEntries="1" version="2.2">
      <description>
        IPv6 Control Protocol (IPv6CP) client object for this PPP interface
        {{bibref|RFC5072}}. {{object}} only applies to IPv6.
      </description>

      <parameter name="LocalInterfaceIdentifier" access="readOnly">
        <description>
          The interface identifier for the local end of the PPP link,
          negotiated using the IPv6CP ''Interface-Identifier'' option
          {{bibref|RFC5072|Section 4.1}}.

          The identifier is represented as the rightmost 64 bits of an IPv6
          address (the leftmost 64 bits MUST be zero and MUST be ignored by the
          recipient).
        </description>
        <syntax>
          <dataType ref="IPv6Address"/>
        </syntax>
      </parameter>

      <parameter name="RemoteInterfaceIdentifier" access="readOnly">
        <description>
          The interface identifier for the remote end of the PPP link,
          negotiated using the IPv6CP ''Interface-Identifier'' option
          {{bibref|RFC5072|Section 4.1}}.

          The identifier is represented as the rightmost 64 bits of an IPv6
          address (the leftmost 64 bits MUST be zero and MUST be ignored by the
          recipient).
        </description>
        <syntax>
          <dataType ref="IPv6Address"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.PPP.Interface.{i}.PPPoA." access="readOnly"
        minEntries="0" maxEntries="1" status="deleted" version="2.2">
      <description>
        PPPoA object that functionally groups PPPoA related parameters.

        {{deprecated|2.12|because it contains no standard parameters and its
        existence causes confusion}}

        {{obsoleted|2.12}}

        {{deleted|2.15}}
      </description>
    </object>

    <object name="Device.IP." access="readOnly" minEntries="1" maxEntries="1"
        version="2.0">
      <description>
        IP object that contains the {{object|Interface}},
        {{object|ActivePort}}, and {{object|Diagnostics}} objects.
      </description>

      <parameter name="IPv4Capable" access="readOnly">
        <description>
          Indicates whether the device is IPv4 capable.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="IPv4Enable" access="readWrite" version="2.2">
        <description>
          Enables or disables the IPv4 stack, and so the use of IPv4 on the
          device. This affects only layer 3 and above.

          When {{false}}, IP interfaces that had been operationally up and
          passing IPv4 packets will now no longer be able to do so, and will be
          operationally down (unless also attached to an enabled IPv6 stack).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="IPv4Status" access="readOnly" version="2.2">
        <description>
          Indicates the status of the IPv4 stack. {{enum}}

          The {{enum|Error}} value MAY be used by the CPE to indicate a locally
          defined error condition.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Enabled"/>
            <enumeration value="Error" optional="true"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="IPv6Capable" access="readOnly" version="2.2">
        <description>
          Indicates whether the device is IPv6 capable.

          Note: If {{false}}, it is expected that IPv6-related parameters,
          enumeration values, etc will not be implemented by the device.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="IPv6Enable" access="readWrite" version="2.2">
        <description>
          Enables or disables the IPv6 stack, and so the use of IPv6 on the
          device. This affects only layer 3 and above.

          When {{false}}, IP interfaces that had been operationally up and
          passing IPv6 packets will now no longer be able to do so, and will be
          operationally down (unless also attached to an enabled IPv4 stack).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="IPv6Status" access="readOnly" version="2.2">
        <description>
          Indicates the status of the IPv6 stack. {{enum}}

          The {{enum|Error}} value MAY be used by the CPE to indicate a locally
          defined error condition.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Enabled"/>
            <enumeration value="Error" optional="true"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ULAPrefix" access="readWrite" version="2.2">
        <description>
          The ULA /48 prefix {{bibref|RFC4193|Section 3}}.
        </description>
        <syntax>
          <dataType ref="IPv6Prefix"/>
        </syntax>
      </parameter>

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

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

    <object name="Device.IP.Interface.{i}." access="readWrite"
        numEntriesParameter="InterfaceNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.0">
      <description>
        IP interface table (a stackable interface object as described in
        {{bibref|TR-181i2|Section 4.2}}). This table models the layer 3 IP
        interface.

        Each IP interface can be attached to the IPv4 and/or IPv6 stack. The
        interface's IP addresses and prefixes are listed in the
        {{object|IPv4Address}}, {{object|IPv6Address}} and
        {{object|IPv6Prefix}} tables.

        Note that support for manipulating {{param|Loopback}} interfaces is
        OPTIONAL, so the implementation MAY choose not to create (or allow the
        Controller to create) {{object}} instances of type
        {{enum|Loopback|Type}}.

        When the Controller administratively disables the interface, i.e. sets
        {{param|Enable}} to {{false}}, the interface's automatically-assigned
        IP addresses and prefixes MAY be retained. When the Controller
        administratively enables the interface, i.e. sets {{param|Enable}} to
        {{true}}, these IP addresses and prefixes MUST be refreshed. It's up to
        the implementation to decide exactly what this means: it SHOULD take
        all reasonable steps to refresh everything but if it is unable, for
        example, to refresh a prefix that still has a significant lifetime, it
        might well choose to retain rather than discard it.

        Any {{enum|Tunneled|Type}} IP interface instances instantiated by the
        CPE MUST NOT have any statistics, writable parameters, IP addresses or
        IPv6 prefixes. Any read-only parameters, e.g. {{param|Status}}, MUST
        return the same information as for the corresponding
        {{enum|Tunnel|Type}} interface. The reason for these rules is that
        {{enum|Tunneled|Type}} IP interfaces exist only in order to be the
        targets of references (within the data model) and do not model any
        concepts over and above those already modeled by the
        {{enum|Tunnel|Type}} IP interfaces.

        Note that {{enum|Tunnel|Type}} and {{enum|Tunneled|Type}} IP interfaces
        are part of a legacy mechanism that is only used for
        {{object|##.IPv6rd}}, {{object|##.DSLite}} and {{object|##.IPsec}}
        tunnels and MUST NOT be used in any other context. For all other
        tunneling mechanisms {{enum|Normal|Type}} IP interfaces are stacked
        above technology-specific Tunnel Interfaces, e.g. above
        {{object|##.GRE.Tunnel.{i}.Interface}} or
        {{object|##.MAP.Domain.{i}.Interface}} objects.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Name"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the interface (regardless of {{param|IPv4Enable}}
          and {{param|IPv6Enable}}).

          This parameter is based on ''ifAdminStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="IPv4Enable" access="readWrite" version="2.2"
          dmr:previousParameter="Enable">
        <description>
          If set to {{true}}, attaches this interface to the IPv4 stack. If set
          to {{false}}, detaches this interface from the IPv4 stack.

          Once detached from the IPv4 stack, the interface will now no longer
          be able to pass IPv4 packets, and will be operationally down (unless
          also attached to an enabled IPv6 stack).

          For an IPv4 capable device, if {{param}} is not present this
          interface SHOULD be permanently attached to the IPv4 stack.

          Note that {{param}} is independent of {{param|Enable}}, and that to
          administratively enable an interface for IPv4 it is necessary for
          both {{param|Enable}} and {{param}} to be {{true}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status">
        <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" version="2.0">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name">
        <description>
          The textual name of the interface as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" 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"
          dmr:previousParameter="LowerLayers">
        <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"
          dmr:previousParameter="Router">
        <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 command="true">
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="IPv6Enable" access="readWrite" version="2.2">
        <description>
          If set to {{true}}, attaches this interface to the IPv6 stack. If set
          to {{false}}, detaches this interface from the IPv6 stack.

          Once detached from the IPv6 stack, the interface will now no longer
          be able to pass IPv6 packets, and will be operationally down (unless
          also attached to an enabled IPv4 stack).

          For an IPv6 capable device, if {{param}} is not present this
          interface SHOULD be permanently attached to the IPv6 stack.

          Note that {{param}} is independent of {{param|Enable}}, and that to
          administratively enable an interface for IPv6 it is necessary for
          both {{param|Enable}} and {{param}} to be {{true}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="ULAEnable" access="readWrite" version="2.2">
        <description>
          Controls whether or not ULAs {{bibref|RFC4193}} are generated and
          used on this interface.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="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">
              <description>
                Only used with legacy ({{enum|Tunnel}},{{enum|Tunneled}}) IP
                interface pairs
              </description>
            </enumeration>
            <enumeration value="Tunneled">
              <description>
                Only used with legacy ({{enum|Tunnel}},{{enum|Tunneled}}) IP
                interface pairs
              </description>
            </enumeration>
          </string>
          <default type="object" value="Normal"/>
        </syntax>
      </parameter>

      <parameter name="Loopback" access="readWrite">
        <description>
          When set to {{true}}, the IP interface becomes a loopback interface
          and the CPE MUST set {{param|Type}} to {{enum|Loopback|Type}}. In
          this case, the CPE MUST also set {{param|LowerLayers}} to {{empty}}
          and fail subsequent attempts at setting {{param|LowerLayers}} until
          the interface is no longer a loopback.

          Support for manipulating loopback interfaces is OPTIONAL.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

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

      <parameter name="IPv6AddressNumberOfEntries" access="readOnly"
          version="2.2">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="IPv6PrefixNumberOfEntries" access="readOnly"
          version="2.2">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="AutoIPEnable" access="readWrite">
        <description>
          If {{true}}, enables auto-IP on the interface {{bibref|RFC3927}}.
          This mechanism is only used with IPv4.

          When auto-IP is enabled on an interface, an {{object|IPv4Address}}
          object will dynamically be created and configured with auto-IP
          parameter values. The exact conditions under which an auto-IP address
          is created (e.g. always when enabled or only in absence of dynamic IP
          addressing) is implementation specific.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

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

    <object name="Device.IP.Interface.{i}.IPv4Address.{i}." access="readWrite"
        numEntriesParameter="IPv4AddressNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded"
        version="2.0" dmr:previousObject="Device.IP.Interface.{i}.">
      <description>
        IPv4 address table. Entries are auto-created and auto-deleted as IP
        addresses are added and deleted via DHCP, auto-IP, 3GPP-NAS (3GPP Non
        Access Stratum), or IPCP. Static entries are created and configured by
        the Controller.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="IPAddress"/>
        <parameter ref="SubnetMask"/>
      </uniqueKey>

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

      <parameter name="Status" access="readOnly" version="2.2">
        <description>
          The status of this {{object}} table entry. {{enum}}

          The {{enum|Error_Misconfigured}} value indicates that a necessary
          configuration value is undefined or invalid.

          The {{enum|Error}} value MAY be used by the CPE to indicate a locally
          defined error condition.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Enabled"/>
            <enumeration value="Error_Misconfigured"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

      <parameter name="Alias" access="readWrite" version="2.0">
        <description>
          {{datatype|expand}}

          This parameter can only be modified if {{param|AddressingType}} is
          {{enum|Static|AddressingType}}.
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </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="IKEv2">
              <description>Assigned by IKEv2 {{bibref|RFC5996}}.</description>
            </enumeration>
            <enumeration value="AutoIP"/>
            <enumeration value="IPCP"/>
            <enumeration value="Static"/>
            <enumeration value="3GPP-NAS" version="2.18">
              <description>
                Assigned by the core network (fixed or cellular) using 3GPP NAS
                signalling methods. e.g. PDU Session Establishment Request
                {{bibref|3GPP-TS.24.501|Clause 6.2.4.2}}, PDN Connectivity
                Request {{bibref|3GPP-TS.24.301|Clause 6.2.2}}, PDP Context
                Activation Request {{bibref|3GPP-TS.24.008|Clause 6.1.2A}}, ...
                This information is available from the AT commands
                {{bibref|3GPP-TS.27.007|Clause 10.1.23}} PDP context read
                dynamic parameters +CGCONTRDP.
              </description>
            </enumeration>
          </string>
          <default type="object" value="Static"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IP.Interface.{i}.Stats." minEntries="1"
        maxEntries="1" version="2.0">
      <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="Reset" access="readWrite" version="2.18">
        <description>
          Set this to {{true}} to reset all this object's statistics counters
          to zero.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BytesSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface,
          including framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface, including
          framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} that could not be transmitted
          because of errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} that contained errors
          preventing them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="ErrorsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="DiscardPacketsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were not addressed to a multicast or broadcast
          address at this layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a multicast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

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

          Note that IPv6 does not define broadcast addresses, so IPv6 {{units}}
          will never cause this counter to increment.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a broadcast address at this
          layer.

          Note that IPv6 does not define broadcast addresses, so IPv6 {{units}}
          will never cause this counter to increment.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnknownProtoPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received via the interface which were
          discarded because of an unknown or unsupported protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IP.Interface.{i}.TWAMPReflector.{i}."
        access="readWrite" minEntries="0" maxEntries="unbounded"
        enableParameter="Enable"
        numEntriesParameter="TWAMPReflectorNumberOfEntries" version="2.12"
        dmr:previousObject="Device.Interface.{i}.Stats.">
      <description>
        This object contains parameters associated with the configuration that
        permits this interface to be used as Two-Way Active Measurement
        Protocol (TWAMP) reflector as defined in {{bibref|TR-390}}.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="Port"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the TWAMP reflector.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The current operational state of the TWAMP reflector.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Active"/>
            <enumeration value="Error" optional="true"/>
          </string>
        </syntax>
      </parameter>

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

      <parameter name="Port" access="readWrite">
        <description>
          The port used to listen for the TWAMP test packets.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="65535"/>
          </unsignedInt>
          <default type="object" value="862"/>
        </syntax>
      </parameter>

      <parameter name="MaximumTTL" access="readWrite">
        <description>
          The maximum TTL of a received packet that this TWAMP reflector will
          reflect to the TWAMP controller.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="255"/>
          </unsignedInt>
          <default type="object" value="1"/>
        </syntax>
      </parameter>

      <parameter name="IPAllowedList" access="readWrite">
        <description>
          {{list}} List items represent source IP addresses and subnets from
          which test packets MUST always be received. {{empty}} list will allow
          test packets to be received from any source IP address.

          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="255"/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="PortAllowedList" access="readWrite">
        <description>
          {{list}} List items represent source port ranges from which test
          packets MUST always be received. {{empty}} list will allow test
          packets to be received from any source port.

          Each entry in the list MUST be either a port number or a range of
          port numbers separated by a hyphen (-).

          For example, an entry with the value: '2-40' accepts test packets
          from any allowed source IP addresses with a source port between 2 and
          40 inclusive. An entry of '3' accepts test packets from allow source
          IP addresses with a port of 3.
        </description>
        <syntax>
          <list>
            <size maxLength="255"/>
          </list>
          <string/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IP.Interface.{i}.IPv6Address.{i}." access="readWrite"
        numEntriesParameter="IPv6AddressNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded"
        version="2.2">
      <description>
        This table contains the IP interface's IPv6 unicast addresses. There
        MUST be an entry for each such address, including anycast addresses.

        There are several ways in which entries can be added to and deleted
        from this table, including:

        * Automatically via SLAAC {{bibref|RFC4862}}, which covers generation
          of link-local addresses (for all types of device) and global
          addresses (for non-router devices).

        * Automatically via DHCPv6 {{bibref|RFC8415}}, which covers generation
          of any type of address (subject to the configured DHCP server
          policy).

        * Manually via a GUI or some other local management interface.

        * Manually via factory default configuration.

        * By the Controller.

        This table MUST NOT include entries for the Subnet-Router anycast
        address {{bibref|RFC4291|Section 2.6.1}}. Such entries would be
        identical to others but with a zero interface identifier, and would add
        no value.

        A loopback interface will always have address ''::1''
        {{bibref|RFC4291|Section 2.5.3}} and MAY also have link-local address
        ''fe80::1''.

        This object is based on ''ipAddressTable'' from {{bibref|RFC4293}}.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="IPAddress"/>
      </uniqueKey>

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

      <parameter name="Status" access="readOnly">
        <description>
          The status of this {{object}} table entry. {{enum}}

          The {{enum|Error_Misconfigured}} value indicates that a necessary
          configuration value is undefined or invalid.

          The {{enum|Error}} value MAY be used by the CPE to indicate a locally
          defined error condition.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Enabled"/>
            <enumeration value="Error_Misconfigured"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

      <parameter name="IPAddressStatus" access="readOnly">
        <description>
          The status of {{param|IPAddress}}, indicating whether it can be used
          for communication. See also {{param|PreferredLifetime}} and
          {{param|ValidLifetime}}. {{enum}}

          This parameter is based on ''ipAddressStatus'' and
          ''ipAddressStatusTC'' from {{bibref|RFC4293}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Preferred">
              <description>
                Valid address that can appear as the destination or source
                address of a packet.
              </description>
            </enumeration>
            <enumeration value="Deprecated">
              <description>
                Valid but deprecated address that is not intended to be used as
                a source address.
              </description>
            </enumeration>
            <enumeration value="Invalid">
              <description>
                Invalid address that is not intended to appear as the
                destination or source address of a packet.
              </description>
            </enumeration>
            <enumeration value="Inaccessible">
              <description>
                Valid address that is not accessible because the interface to
                which it is assigned is not operational.
              </description>
            </enumeration>
            <enumeration value="Unknown">
              <description>
                Address status cannot be determined for some reason.
              </description>
            </enumeration>
            <enumeration value="Tentative">
              <description>
                The uniqueness of the address on the link is being verified.
              </description>
            </enumeration>
            <enumeration value="Duplicate">
              <description>
                Invalid address that has been determined to be non-unique on
                the link.
              </description>
            </enumeration>
            <enumeration value="Optimistic">
              <description>
                Valid address that is available for use, subject to
                restrictions, while its uniqueness on a link is being verified.
              </description>
            </enumeration>
          </string>
          <default type="object" value="Invalid"/>
        </syntax>
      </parameter>

      <parameter name="Alias" access="readWrite" version="2.2">
        <description>
          {{datatype|expand}}

          This parameter can only be modified if {{param|Origin}} is
          {{enum|Static|Origin}}.
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="IPAddress" access="readWrite">
        <description>
          IPv6 address.

          This parameter can only be modified if the {{param|Origin}} is
          {{enum|Static|Origin}}.

          This parameter is based on ''ipAddressAddr'' from {{bibref|RFC4293}}.
        </description>
        <syntax>
          <dataType ref="IPv6Address"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Origin" access="readOnly">
        <description>
          Mechanism via which the IP address was assigned. {{enum}}

          This parameter is based on ''ipOrigin'' from {{bibref|RFC4293}}.
        </description>
        <syntax>
          <string>
            <enumeration value="AutoConfigured">
              <description>
                Automatically generated. For example, a link-local address as
                specified by SLAAC {{bibref|RFC4862|Section 5.3}}, a global
                address as specified by SLAAC {{bibref|RFC4862|Section 5.5}},
                or generated via CPE logic (e.g. from delegated prefix as
                specified by {{bibref|RFC8415}}), or from ULA /48 prefix as
                specified by {{bibref|RFC4193}}.
              </description>
            </enumeration>
            <enumeration value="DHCPv6">
              <description>Assigned by DHCPv6 {{bibref|RFC8415}}.</description>
            </enumeration>
            <enumeration value="IKEv2">
              <description>Assigned by IKEv2 {{bibref|RFC5996}}.</description>
            </enumeration>
            <enumeration value="MAP">
              <description>
                Assigned by MAP {{bibref|RFC7597}}, i.e. is this interface's
                ''MAP IPv6 address''
              </description>
            </enumeration>
            <enumeration value="WellKnown">
              <description>
                Specified by a standards organization, e.g. the ''::1''
                loopback address, which is defined in {{bibref|RFC4291}}.
              </description>
            </enumeration>
            <enumeration value="3GPP-NAS" version="2.18">
              <description>
                Address assigned by the core network (fixed or cellular) using
                3GPP NAS signalling methods. e.g. PDU Session Establishment
                Request {{bibref|3GPP-TS.24.501|Clause 6.2.4.2}}, PDN
                Connectivity Request {{bibref|3GPP-TS.24.301|Clause 6.2.2}},
                PDP Context Activation Request {{bibref|3GPP-TS.24.008|Clause
                6.1.2A}}, ... This information is available from the AT
                commands {{bibref|3GPP-TS.27.007|Clause 10.1.23}} PDP context
                read dynamic parameters +CGCONTRDP.
              </description>
            </enumeration>
            <enumeration value="Static">
              <description>
                For example, present in the factory default configuration (but
                not {{enum|WellKnown}}), created by the Controller, or created
                by some other management entity (e.g. via a GUI).
              </description>
            </enumeration>
          </string>
          <default type="object" value="Static"/>
        </syntax>
      </parameter>

      <parameter name="Prefix" access="readWrite">
        <description>
          IPv6 address prefix.

          Some addresses, e.g. addresses assigned via the DHCPv6 IA_NA option,
          are not associated with a prefix, and some
          {{enum|WellKnown|#.IPv6Prefix.{i}.Origin}} prefixes might not be
          modeled. In both of these cases {{param}} will be {{null}}.

          This parameter can only be modified if the {{param|Origin}} is
          {{enum|Static|Origin}}.

          This parameter is based on ''ipAddressPrefix'' from
          {{bibref|RFC4293}}.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="#.IPv6Prefix."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="PreferredLifetime" access="readWrite">
        <description>
          The time at which this address will cease to be preferred (i.e. will
          become deprecated), or {{null}} if not known. For an infinite
          lifetime, the parameter value MUST be 9999-12-31T23:59:59Z.

          This parameter can only be modified if the {{param|Origin}} is
          {{enum|Static|Origin}}.
        </description>
        <syntax>
          <dateTime/>
          <default type="object" value="9999-12-31T23:59:59Z"/>
        </syntax>
      </parameter>

      <parameter name="ValidLifetime" access="readWrite">
        <description>
          The time at which this address will cease to be valid (i.e. will
          become invalid), or {{null}} if unknown. For an infinite lifetime,
          the parameter value MUST be 9999-12-31T23:59:59Z.

          This parameter can only be modified if the {{param|Origin}} is
          {{enum|Static|Origin}}.
        </description>
        <syntax>
          <dateTime/>
          <default type="object" value="9999-12-31T23:59:59Z"/>
        </syntax>
      </parameter>

      <parameter name="Anycast" access="readWrite">
        <description>
          Indicates whether this is an anycast address {{bibref|RFC4291|Section
          2.6}}. Anycast addresses are syntactically identical to unicast
          addresses and so need to be configured explicitly.

          This parameter can only be modified if the {{param|Origin}} is
          {{enum|Static|Origin}}.

          This parameter is based on ''ipAddressType'' from {{bibref|RFC4293}}.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IP.Interface.{i}.IPv6Prefix.{i}." access="readWrite"
        numEntriesParameter="IPv6PrefixNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded"
        version="2.2">
      <description>
        This table contains the interface's IPv6 prefixes. There MUST be an
        entry for each such prefix, not only for prefixes learned from router
        advertisements.

        There are several ways in which entries can be added to and deleted
        from this table, including:

        * Automatically via {{bibref|RFC4861}} Router Advertisements. See also
          {{object|###.RouterAdvertisement}}.

        * Automatically via DHCPv6 {{bibref|RFC8415}} prefix delegation
          {{bibref|RFC8415}}. See also {{object|###.DHCPv6.Client}}.

        * Automatically via internal CPE logic, e.g. creation of child prefixes
          derived from a parent prefix.

        * Manually via a GUI or some other local management interface.

        * Manually via factory default configuration.

        * By the Controller.

        The CPE MAY choose not to create {{object}} entries for
        {{enum|WellKnown|Origin}} prefixes or for the ULA /48 prefix
        {{bibref|RFC4193}}. If an {{object}} entry exists for the ULA /48
        prefix, it MUST be on a downstream interface (i.e. an interface for
        which the physical layer interface object has ''Upstream'' =
        {{false}}).

        This object is based on ''ipAddressPrefixTable'' from
        {{bibref|RFC4293}}.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="Prefix"/>
      </uniqueKey>

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

      <parameter name="Status" access="readOnly">
        <description>
          The status of this {{object}} table entry. {{enum}}

          The {{enum|Error}} value MAY be used by the CPE to indicate a locally
          defined error condition.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Enabled"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

      <parameter name="PrefixStatus" access="readOnly">
        <description>
          The status of {{param|Prefix}}, indicating whether it can be used for
          communication. See also {{param|PreferredLifetime}} and
          {{param|ValidLifetime}}. {{enum}}

          This parameter is based on ''ipAddressStatus'' and
          ''ipAddressStatusTC'' from {{bibref|RFC4293}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Preferred">
              <description>Valid prefix.</description>
            </enumeration>
            <enumeration value="Deprecated">
              <description>Valid but deprecated prefix.</description>
            </enumeration>
            <enumeration value="Invalid">
              <description>Invalid prefix.</description>
            </enumeration>
            <enumeration value="Inaccessible">
              <description>
                Valid prefix that is not accessible because the interface to
                which it is assigned is not operational.
              </description>
            </enumeration>
            <enumeration value="Unknown">
              <description>
                Prefix status cannot be determined for some reason.
              </description>
            </enumeration>
          </string>
          <default type="object" value="Invalid"/>
        </syntax>
      </parameter>

      <parameter name="Alias" access="readWrite" version="2.2">
        <description>
          {{datatype|expand}}

          This parameter can only be modified if {{param|Origin}} is
          {{enum|Static|Origin}}.
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Prefix" access="readWrite">
        <description>
          IPv6 address prefix.

          This parameter can only be modified if the {{param|Origin}} is
          {{enum|Static|Origin}}.

          This parameter is based on ''ipAddressPrefixPrefix'' from
          {{bibref|RFC4293}}.
        </description>
        <syntax>
          <dataType ref="IPv6Prefix"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Origin" access="readOnly">
        <description>
          Mechanism via which the prefix was assigned or most recently updated.
          {{enum}}

          Note that:

          * {{enum|PrefixDelegation}} and {{enum|RouterAdvertisement}} prefixes
            can exist only on upstream interfaces (i.e. interfaces for which
            the physical layer interface object has ''Upstream'' = {{true}}),

          * {{enum|AutoConfigured}} and {{enum|WellKnown}} prefixes can exist
            on any interface, and

          * {{enum|Static}} and {{enum|Child}} prefixes can exist only on
            downstream interfaces (i.e. interfaces for which the physical layer
            interface object has ''Upstream'' = {{false}}).

          Also note that a {{enum|Child}} prefix's {{param|ParentPrefix}} will
          always be an {{enum|AutoConfigured}}, {{enum|PrefixDelegation}}, or
          {{enum|RouterAdvertisement}} prefix.

          This parameter is based on ''ipAddressOrigin'' from
          {{bibref|RFC4293}}.
        </description>
        <syntax>
          <string>
            <enumeration value="AutoConfigured">
              <description>
                Generated via internal CPE logic (e.g. the ULA /48 prefix) or
                derived from an internal prefix that is not modeled in any
                {{object}} table.
              </description>
            </enumeration>
            <enumeration value="PrefixDelegation">
              <description>
                Delegated via DHCPv6 {{bibref|RFC8415}} or some other protocol,
                e.g. IPv6rd {{bibref|RFC5969}}. Also see {{param|StaticType}}.
              </description>
            </enumeration>
            <enumeration value="RouterAdvertisement">
              <description>
                Discovered via router advertisement {{bibref|RFC4861}} Prefix
                Information Option.
              </description>
            </enumeration>
            <enumeration value="WellKnown">
              <description>
                Specified by a standards organization, e.g. ''fe80::/10'' for
                link-local addresses, or ''::1/128'' for the loopback address,
                both of which are defined in {{bibref|RFC4291}}.
              </description>
            </enumeration>
            <enumeration value="Static">
              <description>
                Created by the Controller, by some other management entity
                (e.g. via a GUI), or present in the factory default
                configuration (but not {{enum|WellKnown}}). Unrelated to any
                shorter length prefix that might exist on the CPE. Also see
                {{param|StaticType}}. Can be used for RA (Prefix Information),
                DHCPv6 address assignment (IA_NA) or DHCPv6 prefix delegation
                (IA_PD).
              </description>
            </enumeration>
            <enumeration value="Child">
              <description>
                Derived from an associated {{enum|AutoConfigured}} or
                {{enum|PrefixDelegation}} parent prefix. Also see
                {{param|StaticType}}, {{param|ParentPrefix}} and
                {{param|ChildPrefixBits}}. Can be used for RA (Prefix
                Information), DHCPv6 address assignment (IA_NA) or DHCPv6
                prefix delegation (IA_PD).
              </description>
            </enumeration>
          </string>
          <default type="object" value="Static"/>
        </syntax>
      </parameter>

      <parameter name="StaticType" access="readWrite">
        <description>
          Static prefix sub-type. For a {{enum|Static|Origin}} prefix, this can
          be set to {{enum|PrefixDelegation}} or {{enum|Child}}, thereby
          creating an unconfigured prefix of the specified type that will be
          populated in preference to creating a new instance. This allows the
          Controller to pre-create "prefix slots" with known path names that
          can be referenced from elsewhere in the data model before they have
          been populated. {{enum}}

          This mechanism works as follows:

          * When this parameter is set to {{enum|PrefixDelegation}} or
            {{enum|Child}}, the instance becomes a "prefix slot" of the
            specified type.

          * Such an instance can be administratively enabled ({{param|Enable}}
            = {{true}}) but will remain operationally disabled
            ({{param|Status}} = {{enum|Disabled|Status}}) until it has been
            populated.

          * When a new prefix of of type T is needed, the CPE will look for a
            matching unpopulated instance, i.e. an instance with
            ({{param|Origin}},{{param}},{{param|Prefix}}) =
            ({{enum|Static|Origin}},T,""). If the CPE finds at least one such
            instance it will choose one and populate it. If already
            administratively enabled it will immediately become operationally
            enabled. If the CPE finds no such instances, it will create and
            populate a new instance with ({{param|Origin}},{{param}}) = (T,T).
            If the CPE finds more than one such instance, the algorithm via
            which it chooses which instance to populate is
            implementation-specific.

          * When a prefix that was populated via this mechanism becomes
            invalid, the CPE will reset {{param|Prefix}} to {{empty}}. This
            does not affect the value of the {{param|Enable}} parameter.

          The prefix {{param}} can only be modified if {{param|Origin}} is
          {{enum|Static|Origin}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Static">
              <description>
                Prefix is a "normal" {{enum|Static|Origin}} prefix.
              </description>
            </enumeration>
            <enumeration value="Inapplicable" access="readOnly">
              <description>
                Prefix is not {{enum|Static|Origin}}, so this parameter does
                not apply.
              </description>
            </enumeration>
            <enumeration value="PrefixDelegation">
              <description>
                Prefix will be populated when a
                {{enum|PrefixDelegation|Origin}} prefix needs to be created.
              </description>
            </enumeration>
            <enumeration value="Child">
              <description>
                Prefix will be populated when a {{enum|Child|Origin}} prefix
                needs to be created. In this case, the Controller needs also to
                set {{param|ParentPrefix}} and might want to set
                {{param|ChildPrefixBits}} (if parent prefix is not set, or goes
                away, then the child prefix will become operationally
                disabled).
              </description>
            </enumeration>
          </string>
          <default type="object" value="Static"/>
        </syntax>
      </parameter>

      <parameter name="ParentPrefix" access="readWrite">
        <description>
          Indicates the parent prefix from which this prefix was derived. The
          parent prefix is relevant only for {{enum|Child|Origin}} prefixes and
          for {{enum|Static|Origin}} {{enum|Child|StaticType}} prefixes (both
          of which will always be on downstream interfaces), i.e. for
          {{param|Origin}}={{enum|Child|Origin}} and for
          ({{param|Origin}},{{param|StaticType}}) =
          ({{enum|Static|Origin}},{{enum|Child|StaticType}}) prefixes.

          This parameter can only be modified if {{param|Origin}} is
          {{enum|Static|Origin}} (which makes sense only for a prefix whose
          {{param|StaticType}} is already or will be changed to
          {{enum|Child|StaticType}}).
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="." targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="ChildPrefixBits" access="readWrite">
        <description>
          A prefix that specifies the length of {{enum|Static|Origin}}
          {{enum|Child|StaticType}} prefixes and how they are derived from
          their {{param|ParentPrefix}}. It will be used if and only if it is
          not {{empty}} and is longer than the parent prefix (if it is not
          used, derivation of such prefixes is implementation-specific). Any
          bits to the right of the parent prefix are set to the bits in this
          prefix.

          For example, for a parent prefix of fedc::/56, if this parameter had
          the value 123:4567:89ab:cdef::/64, the child /64 would be
          fedc:0:0:ef::/64. For a parent prefix of fedc::/60, the child /64
          would be fedc:0:0:f::/64.

          This parameter can only be modified if {{param|Origin}} is
          {{enum|Static|Origin}}.
        </description>
        <syntax>
          <dataType ref="IPv6Prefix"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="OnLink" access="readWrite">
        <description>
          On-link flag {{bibref|RFC4861|Section 4.6.2}} as received (in the RA)
          for RouterAdvertisement. Indicates whether this prefix can be used
          for on-link determination.

          This parameter can only be modified if {{param|Origin}} is
          {{enum|Static|Origin}}.

          This parameter is based on ''ipAddressPrefixOnLinkFlag'' from
          {{bibref|RFC4293}}.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Autonomous" access="readWrite">
        <description>
          Autonomous address configuration flag {{bibref|RFC4861|Section
          4.6.2}} as received (in the RA) for RouterAdvertisement. Indicates
          whether this prefix can be used for generating global addresses as
          specified by SLAAC {{bibref|RFC4862}}.

          This parameter can only be modified if {{param|Origin}} is
          {{enum|Static|Origin}}.

          This parameter is based on ''ipAddressPrefixAutonomousFlag'' from
          {{bibref|RFC4293}}.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="PreferredLifetime" access="readWrite">
        <description>
          This parameter is based on ''ipAddressPrefixAdvPreferredLifetime''
          from {{bibref|RFC4293}}. The time at which this prefix will cease to
          be preferred (i.e. will become deprecated), or {{null}} if not known.
          For an infinite lifetime, the parameter value MUST be
          9999-12-31T23:59:59Z.

          This parameter can only be modified if {{param|Origin}} is
          {{enum|Static|Origin}}.
        </description>
        <syntax>
          <dateTime/>
          <default type="object" value="9999-12-31T23:59:59Z"/>
        </syntax>
      </parameter>

      <parameter name="ValidLifetime" access="readWrite">
        <description>
          This parameter is based on ''ipAddressPrefixAdvValidLifetime'' from
          {{bibref|RFC4293}}. The time at which this prefix will cease to be
          valid (i.e. will become invalid), or {{null}} if not known. For an
          infinite lifetime, the parameter value MUST be 9999-12-31T23:59:59Z.

          This parameter can only be modified if {{param|Origin}} is
          {{enum|Static|Origin}}.
        </description>
        <syntax>
          <dateTime/>
          <default type="object" value="9999-12-31T23:59:59Z"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IP.ActivePort.{i}." access="readOnly"
        numEntriesParameter="ActivePortNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.0">
      <description>
        This table lists the ports on which TCP connections are listening or
        established.
      </description>
      <uniqueKey functional="true">
        <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" version="2.0">
      <description>
        The IP Diagnostics object.
      </description>

      <parameter name="IPv4PingSupported" access="readOnly" version="2.8">
        <description>
          Indicates that Ping over IPv4 is supported.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="IPv6PingSupported" access="readOnly" version="2.8">
        <description>
          Indicates that Ping over IPv6 is supported.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="IPv4TraceRouteSupported" access="readOnly"
          version="2.8">
        <description>
          Indicates that TraceRoute over IPv4 is supported.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="IPv6TraceRouteSupported" access="readOnly"
          version="2.8">
        <description>
          Indicates that TraceRoute over IPv6 is supported.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="IPv4DownloadDiagnosticsSupported" access="readOnly"
          version="2.9">
        <description>
          Indicates that Download Diagnostics over IPv4 is supported.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="IPv6DownloadDiagnosticsSupported" access="readOnly"
          version="2.9">
        <description>
          Indicates that Download Diagnostics over IPv6 is supported.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="IPv4UploadDiagnosticsSupported" access="readOnly"
          version="2.9">
        <description>
          Indicates that Upload Diagnostics over IPv4 is supported.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="IPv6UploadDiagnosticsSupported" access="readOnly"
          version="2.9">
        <description>
          Indicates that Upload Diagnostics over IPv6 is supported.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="IPv4UDPEchoDiagnosticsSupported" access="readOnly"
          version="2.9">
        <description>
          Indicates that UDPEcho Diagnostics over IPv4 is supported.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="IPv6UDPEchoDiagnosticsSupported" access="readOnly"
          version="2.9">
        <description>
          Indicates that UDPEcho Diagnostics over IPv6 is supported.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="IPLayerCapacitySupported" access="readOnly"
          version="2.14">
        <description>
          Indicates that IP Layer Capacity measurement is supported.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="IPv4ServerSelectionDiagnosticsSupported"
          access="readOnly" version="2.9">
        <description>
          Indicates that ServerSelection Diagnostics over IPv4 is supported.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="IPv6ServerSelectionDiagnosticsSupported"
          access="readOnly" version="2.9">
        <description>
          Indicates that ServerSelection Diagnostics over IPv6 is supported.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IP.Diagnostics.IPPing." access="readOnly"
        minEntries="1" maxEntries="1" version="2.0"
        dmr:previousObject="Device.IP.Diagnostics.">
      <description>
        This object provides access to an IP-layer ping test.
      </description>

      <parameter name="DiagnosticsState" access="readWrite">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="DiagnosticsState">
            <enumeration value="None" access="readOnly"/>
            <enumeration value="Requested"/>
            <enumeration value="Canceled" optional="true"/>
            <enumeration value="Complete" access="readOnly"/>
            <enumeration value="Error" access="readOnly" optional="true"/>
            <enumeration value="Error_CannotResolveHostName" access="readOnly"/>
            <enumeration value="Error_NoRouteToHost" access="readOnly">
              <description>
                The CPE can not reach the requested Ping host address
              </description>
            </enumeration>
            <enumeration value="Error_Internal" access="readOnly"/>
            <enumeration value="Error_Other" access="readOnly"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite" version="2.0">
        <description>
          {{reference}} The layer 2 or layer 3 interface over which the test is
          to be performed. Example: ''Device.IP.Interface.1'',
          ''Device.Bridge.1.Port.2''

          {{template|INTERFACE-ROUTING}}
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="weak" targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ProtocolVersion" access="readWrite" version="2.8">
        <description>
          Indicates the IP protocol to be used.
        </description>
        <syntax>
          <string>
            <enumeration value="Any">
              <description>
                Use either IPv4 or IPv6 depending on the system preference
              </description>
            </enumeration>
            <enumeration value="IPv4">
              <description>Use IPv4 for the Ping requests</description>
            </enumeration>
            <enumeration value="IPv6">
              <description>Use IPv6 for the Ping requests</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="Host" access="readWrite" version="2.0">
        <description>
          Host name or address of the host to ping.

          In the case where {{param}} is specified by name, and the name
          resolves to more than one address, it is up to the device
          implementation to choose which address to use.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="NumberOfRepetitions" access="readWrite" version="2.0">
        <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" version="2.0">
        <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" version="2.0">
        <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" version="2.0">
        <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="IPAddressUsed" access="readOnly" version="2.8">
        <description>
          Indicates which IP address was used to send the Ping request. The
          parameter is only valid if the {{param|DiagnosticsState}} is
          {{enum|Complete|DiagnosticsState}}.
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
        </syntax>
      </parameter>

      <parameter name="SuccessCount" access="readOnly" activeNotify="canDeny"
          version="2.0">
        <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"
          version="2.0">
        <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" version="2.0">
        <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" version="2.0">
        <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" version="2.0">
        <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>

      <parameter name="AverageResponseTimeDetailed" access="readOnly"
          activeNotify="canDeny" version="2.7">
        <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="microseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MinimumResponseTimeDetailed" access="readOnly"
          activeNotify="canDeny" version="2.7">
        <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="microseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MaximumResponseTimeDetailed" access="readOnly"
          version="2.7">
        <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="microseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IP.Diagnostics.TraceRoute." access="readOnly"
        minEntries="1" maxEntries="1" version="2.0"
        dmr:previousObject="Device.IP.Diagnostics.IPPing.">
      <description>
        This object defines access to an IP-layer trace-route test for the
        specified IP interface.
      </description>

      <parameter name="DiagnosticsState" access="readWrite">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="DiagnosticsState">
            <enumeration value="None" access="readOnly"/>
            <enumeration value="Requested"/>
            <enumeration value="Canceled" optional="true"/>
            <enumeration value="Complete" access="readOnly"/>
            <enumeration value="Error" access="readOnly" optional="true"/>
            <enumeration value="Error_CannotResolveHostName" access="readOnly"/>
            <enumeration value="Error_NoRouteToHost" access="readOnly">
              <description>
                The CPE can not reach the requested TraceRoute host address
              </description>
            </enumeration>
            <enumeration value="Error_MaxHopCountExceeded" access="readOnly"/>
            <enumeration value="Error_Internal" access="readOnly"/>
            <enumeration value="Error_Other" access="readOnly"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite" version="2.0">
        <description>
          {{reference}} The layer 2 or layer 3 interface over which the test is
          to be performed. Example: ''Device.IP.Interface.1'',
          ''Device.Bridge.1.Port.2''

          {{template|INTERFACE-ROUTING}}
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="weak" targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ProtocolVersion" access="readWrite" version="2.8">
        <description>
          Indicates the IP protocol to be used.
        </description>
        <syntax>
          <string>
            <enumeration value="Any">
              <description>
                Use either IPv4 or IPv6 depending on the system preference
              </description>
            </enumeration>
            <enumeration value="IPv4">
              <description>Use IPv4 for the TraceRoute</description>
            </enumeration>
            <enumeration value="IPv6">
              <description>Use IPv6 for the TraceRoute</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="Host" access="readWrite" version="2.0">
        <description>
          Host name or address of the host to find a route to.

          In the case where {{param}} is specified by name, and the name
          resolves to more than one address, it is up to the device
          implementation to choose which address to use.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="NumberOfTries" access="readWrite" version="2.0">
        <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" version="2.0">
        <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" version="2.0">
        <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" version="2.0">
        <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" version="2.0">
        <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="RouteHopsNumberOfEntries" access="readOnly"
          activeNotify="canDeny">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="IPAddressUsed" access="readOnly" version="2.8">
        <description>
          Indicates which IP address was used for TraceRoute. The parameter is
          only valid if the {{param|DiagnosticsState}} is
          {{enum|Complete|DiagnosticsState}}.
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
        </syntax>
      </parameter>

      <parameter name="ResponseTime" access="readOnly" activeNotify="canDeny"
          version="2.0">
        <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>
    </object>

    <object name="Device.IP.Diagnostics.DownloadDiagnostics."
        access="readOnly" minEntries="1" maxEntries="1" version="2.0"
        dmr:previousObject="Device.IP.Diagnostics.TraceRoute.">
      <description>
        This object defines the diagnostics configuration for a HTTP and FTP
        DownloadDiagnostics Test.

        Files received in the DownloadDiagnostics do not require file storage
        on the CPE device.
      </description>

      <parameter name="DiagnosticsState" access="readWrite">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="DiagnosticsState">
            <enumeration value="None" access="readOnly"/>
            <enumeration value="Requested"/>
            <enumeration value="Canceled" optional="true"/>
            <enumeration value="Complete" access="readOnly"/>
            <enumeration value="Completed" access="readOnly" status="deleted">
              <description>
                {{deprecated|2.13|because it's a typo for {{enum|Complete}}}}

                {{obsoleted|2.16}}

                {{deleted|2.17}}
              </description>
            </enumeration>
            <enumeration value="Error_CannotResolveHostName" access="readOnly"/>
            <enumeration value="Error_NoRouteToHost" access="readOnly"/>
            <enumeration value="Error_InitConnectionFailed" access="readOnly"/>
            <enumeration value="Error_NoResponse" access="readOnly"/>
            <enumeration value="Error_TransferFailed" access="readOnly"/>
            <enumeration value="Error_PasswordRequestFailed" access="readOnly"/>
            <enumeration value="Error_LoginFailed" access="readOnly"/>
            <enumeration value="Error_NoTransferMode" access="readOnly"/>
            <enumeration value="Error_NoPASV" access="readOnly"/>
            <enumeration value="Error_IncorrectSize" access="readOnly"/>
            <enumeration value="Error_Timeout" access="readOnly"/>
            <enumeration value="Error_Internal" access="readOnly"/>
            <enumeration value="Error_Other" access="readOnly"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite" version="2.0">
        <description>
          {{reference}} The IP-layer interface over which the test is to be
          performed. Example: Device.IP.Interface.1

          {{template|INTERFACE-ROUTING}}
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="weak" targetType="row"/>
          </string>
        </syntax>
      </parameter>

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

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

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

          * When using HTTP transport the HTTP Authentication MUST NOT be used.

          Note: For time based tests ({{param|TimeBasedTestDuration}} &gt; 0)
          the Controller MAY add a hint to duration of the test to the URL. See
          {{bibref|TR-143|Section 4.3}} for more details.
        </description>
        <syntax>
          <dataType ref="URL"/>
        </syntax>
      </parameter>

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

      <parameter name="DSCP" access="readWrite" version="2.0">
        <description>
          The DiffServ code point for marking packets transmitted in the test.

          The default value SHOULD be zero.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="63"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="EthernetPriority" access="readWrite" version="2.0">
        <description>
          Ethernet priority code for marking packets transmitted in the test
          (if applicable).

          The default value SHOULD be zero.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="7"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TimeBasedTestDuration" access="readWrite" version="2.9">
        <description>
          Controls time based testing {{bibref|TR-143|Section 4.3}}. When
          {{param}} &gt; 0, {{param}} is the duration in {{units}} of a time
          based test. If {{param}} is 0, the test is not based on time, but on
          the size of the file to be downloaded. The default value SHOULD be 0.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="999"/>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TimeBasedTestMeasurementInterval" access="readWrite"
          version="2.9">
        <description>
          The measurement interval duration in {{units}} for objects in
          {{object|IncrementalResult}} for a time based FTP/HTTP download test
          (when {{param|TimeBasedTestDuration}} &gt; 0). The default value
          SHOULD be 0, which implies {{object|IncrementalResult}} collection is
          disabled.

          For example if {{param|TimeBasedTestDuration}} is 90 {{units}} and
          {{param}} is 10 {{units}}, there will be 9 results in
          {{object|IncrementalResult}}, each with a 10 {{units}} duration.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="999"/>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TimeBasedTestMeasurementOffset" access="readWrite"
          version="2.9">
        <description>
          This {{param}} works in conjunction with
          {{param|TimeBasedTestMeasurementInterval}} to allow the interval
          measurement to start a number of {{units}} after {{param|BOMTime}}.
          The test measurement interval in {{object|IncrementalResult}} starts
          at time {{param|BOMTime}} + {{param}} to allow for slow start window
          removal of file transfers.

          This {{param}} is in {{units}}. The default value SHOULD be 0.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ProtocolVersion" access="readWrite" version="2.9">
        <description>
          Indicates the IP protocol version to be used. The default value
          SHOULD be {{enum|Any}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Any">
              <description>
                Use either IPv4 or IPv6 depending on the system preference.
              </description>
            </enumeration>
            <enumeration value="IPv4">
              <description>Use IPv4 for the requests</description>
            </enumeration>
            <enumeration value="IPv6">
              <description>Use IPv6 for the requests.</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="NumberOfConnections" access="readWrite" version="2.9">
        <description>
          The number of connections to be used in the test. The default value
          SHOULD be 1. {{param}} MUST NOT be set to a value greater than
          {{param|DownloadDiagnosticMaxConnections}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="IPAddressUsed" access="readOnly" activeNotify="canDeny"
          version="2.9" dmr:previousParameter="NumberOfConnections">
        <description>
          Indicates which IP address was used to send the request.
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
        </syntax>
      </parameter>

      <parameter name="DownloadDiagnosticMaxConnections" access="readOnly"
          version="2.9">
        <description>
          Indicates the maximum number of connections that are supported by
          Download Diagnostics.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="DownloadDiagnosticsMaxIncrementalResult"
          access="readOnly" version="2.9">
        <description>
          The maximum number of rows in {{object|IncrementalResult}} that the
          CPE will store.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ROMTime" access="readOnly" activeNotify="canDeny"
          version="2.0">
        <description>
          Request time in UTC, which MUST be specified to microsecond
          precision.

          For example: 2008-04-09T15:01:05.123456Z

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

          * For FTP this is the time at which the client sends the RTRV
            command.

          If multiple connections are used, then {{param}} is set to the
          earliest {{param}} across all connections.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="BOMTime" access="readOnly" activeNotify="canDeny"
          version="2.0">
        <description>
          Begin of transmission time in UTC, which MUST be specified to
          microsecond precision

          For example: 2008-04-09T15:01:05.123456Z

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

          * For FTP this is the time at which the client receives the first
            data packet on the data connection.

          If multiple connections are used, then {{param}} is set to the
          earliest {{param}} across all connections.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="EOMTime" access="readOnly" activeNotify="canDeny"
          version="2.0">
        <description>
          End of transmission in UTC, which MUST be specified to microsecond
          precision.

          For example: 2008-04-09T15:01:05.123456Z

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

          * For FTP this is the time at which the client receives the last
            packet on the data connection.

          If multiple connections are used, then {{param}} is set to the latest
          {{param}} across all connections.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="TestBytesReceived" access="readOnly" version="2.0">
        <description>
          The number of {{units}} received during the FTP/HTTP transaction
          including FTP/HTTP headers, between {{param|BOMTime}} and
          {{param|EOMTime}} across all connections.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="TotalBytesReceived" access="readOnly" version="2.0">
        <description>
          The total number of {{units}} (at the IP layer) received on the
          Interface between {{param|BOMTime}} and {{param|EOMTime}}. This MAY
          be calculated by sampling Stats.BytesReceived on the
          {{param|Interface}} object at {{param|BOMTime}} and at
          {{param|EOMTime}} and subtracting. If {{param|Interface}} is
          {{empty}}, this parameter cannot be determined and SHOULD be 0.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="TotalBytesSent" access="readOnly" version="2.9">
        <description>
          The total number of {{units}} (at the IP layer) sent on the Interface
          between {{param|BOMTime}} and {{param|EOMTime}}. This MAY be
          calculated by sampling Stats.BytesSent on the {{param|Interface}}
          object at {{param|BOMTime}} and at {{param|EOMTime}} and subtracting.
          If {{param|Interface}} is {{empty}}, this parameter cannot be
          determined and SHOULD be 0.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="TestBytesReceivedUnderFullLoading" access="readOnly"
          version="2.9">
        <description>
          The number of {{units}} of the test file received between the latest
          {{param|PerConnectionResult.{i}.BOMTime}} and the earliest
          {{param|PerConnectionResult.{i}.EOMTime}} across all connections.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="TotalBytesReceivedUnderFullLoading" access="readOnly"
          version="2.9">
        <description>
          The total number of {{units}} (at the IP layer) received in between
          the latest {{param|PerConnectionResult.{i}.BOMTime}} and the earliest
          {{param|PerConnectionResult.{i}.EOMTime}}. This MAY be calculated by
          sampling Stats.BytesReceived on the {{param|Interface}} object at the
          latest {{param|PerConnectionResult.{i}.BOMTime}} and at the earliest
          {{param|PerConnectionResult.{i}.EOMTime}} and subtracting.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="TotalBytesSentUnderFullLoading" access="readOnly"
          version="2.9">
        <description>
          The total number of {{units}} (at the IP layer) sent between the
          latest {{param|PerConnectionResult.{i}.BOMTime}} and the earliest
          {{param|PerConnectionResult.{i}.EOMTime}}. This MAY be calculated by
          sampling Stats.BytesSent on the {{param|Interface}} object at the
          latest {{param|PerConnectionResult.{i}.BOMTime}} and at the earliest
          {{param|PerConnectionResult.{i}.EOMTime}} and subtracting.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PeriodOfFullLoading" access="readOnly" version="2.9">
        <description>
          The period of time in {{units}} between the latest
          {{param|PerConnectionResult.{i}.BOMTime}} and the earliest
          {{param|PerConnectionResult.{i}.EOMTime}} of the test.
        </description>
        <syntax>
          <unsignedInt>
            <units value="microseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TCPOpenRequestTime" access="readOnly"
          activeNotify="canDeny" version="2.0">
        <description>
          Request time in UTC, which MUST be specified to microsecond
          precision.

          For example: 2008-04-09T15:01:05.123456Z

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

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

          Note: Interval of 1 microsecond SHOULD be supported.

          If multiple connections are used, then {{param}} is set to the latest
          {{param}} across all connections.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="TCPOpenResponseTime" access="readOnly"
          activeNotify="canDeny" version="2.0">
        <description>
          Response time in UTC, which MUST be specified to microsecond
          precision.

          For example: 2008-04-09T15:01:05.123456Z

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

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

          Note: Interval of 1 microsecond SHOULD be supported.

          If multiple connections are used, then {{param}} is set to the latest
          {{param}} across all connections.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="PerConnectionResultNumberOfEntries" access="readOnly"
          dmr:previousParameter="TCPOpenResponseTime" version="2.9">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="EnablePerConnectionResults" access="readWrite"
          activeNotify="canDeny" version="2.9"
          dmr:previousParameter="TCPOpenResponseTime">
        <description>
          The results must be returned in the {{object|PerConnectionResult}}
          table for every connection when set to {{true}}. The default value
          SHOULD be {{false}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="IncrementalResultNumberOfEntries" access="readOnly"
          dmr:previousParameter="EnablePerConnectionResults" version="2.9">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.{i}."
        access="readOnly"
        numEntriesParameter="PerConnectionResultNumberOfEntries" minEntries="0"
        maxEntries="unbounded" dmr:noUniqueKeys="true" version="2.9">
      <description>
        Results for individual connections. This table is only populated when
        {{param|#.EnablePerConnectionResults}} is {{true}}. A new object is
        created for each connection specified in
        {{param|#.NumberOfConnections}}. Instance numbers MUST start at 1 and
        sequentially increment as new instances are created. All instances are
        removed when {{param|#.DiagnosticsState}} is set to
        {{enum|Requested|#.DiagnosticsState}} or
        {{enum|None|#.DiagnosticsState}}.
      </description>

      <parameter name="ROMTime" access="readOnly" activeNotify="canDeny">
        <description>
          Request time in UTC, which MUST be specified to microsecond
          precision.

          For example: 2008-04-09T15:01:05.123456Z

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

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

      <parameter name="BOMTime" access="readOnly" activeNotify="canDeny">
        <description>
          Begin of transmission time in UTC, which MUST be specified to
          microsecond precision

          For example: 2008-04-09T15:01:05.123456Z

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

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

      <parameter name="EOMTime" access="readOnly" activeNotify="canDeny">
        <description>
          End of transmission in UTC, which MUST be specified to microsecond
          precision.

          For example: 2008-04-09T15:01:05.123456Z

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

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

      <parameter name="TestBytesReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The number of {{units}} of the test file received during the FTP/HTTP
          transaction including FTP/HTTP headers, between {{param|BOMTime}} and
          {{param|EOMTime}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="TotalBytesReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of {{units}} (at the IP layer) received on the
          Interface between {{param|BOMTime}} and {{param|EOMTime}}. This MAY
          be calculated by sampling Stats.BytesReceived on the
          {{param|#.Interface}} object at {{param|BOMTime}} and at
          {{param|EOMTime}} and subtracting.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="TotalBytesSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of {{units}} (at the IP layer) sent on the Interface
          between {{param|BOMTime}} and {{param|EOMTime}}. This MAY be
          calculated by sampling Stats.BytesSent on the {{param|#.Interface}}
          object at {{param|BOMTime}} and at {{param|EOMTime}} and subtracting.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="TCPOpenRequestTime" access="readOnly"
          activeNotify="canDeny">
        <description>
          Request time in UTC, which MUST be specified to microsecond
          precision.

          For example: 2008-04-09T15:01:05.123456Z

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

          * For FTP this is the time at which the TCP socket open (SYN) was
            sent for the data connection.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="TCPOpenResponseTime" access="readOnly"
          activeNotify="canDeny">
        <description>
          Response time in UTC, which MUST be specified to microsecond
          precision.

          For example: 2008-04-09T15:01:05.123456Z

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

          * For FTP this is the time at which the TCP ACK to the socket opening
            the data connection was received.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResult.{i}."
        access="readOnly"
        numEntriesParameter="IncrementalResultNumberOfEntries" minEntries="0"
        maxEntries="unbounded" dmr:noUniqueKeys="true" version="2.9">
      <description>
        Results for time segmented tests (tests where
        {{param|#.TimeBasedTestDuration}} &gt; 0 and
        {{param|#.TimeBasedTestMeasurementInterval}} &gt; 0). This data is
        totaled across all connections in the test. A new object is created
        every {{param|#.TimeBasedTestMeasurementInterval}} after that interval
        has completed. Instance numbers MUST start at 1 and sequentially
        increment as new instances are created. All instances are removed when
        {{param|#.DiagnosticsState}} is set to
        {{enum|Requested|#.DiagnosticsState}} or
        {{enum|None|#.DiagnosticsState}}.
      </description>

      <parameter name="TestBytesReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          Change in the value of {{param|#.TestBytesReceivedUnderFullLoading}}
          between {{param|StartTime}} and {{param|EndTime}}, measured in
          {{units}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="TotalBytesReceived" access="readOnly">
        <description>
          The total number of {{units}} (at the IP layer) received on the
          Interface between {{param|StartTime}} and {{param|EndTime}}. This MAY
          be calculated by sampling Stats.BytesReceived on the
          {{param|#.Interface}} object at {{param|StartTime}} and at
          {{param|EndTime}} and subtracting. If {{param|#.Interface}} is
          {{empty}}, this parameter cannot be determined and SHOULD be 0.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="TotalBytesSent" access="readOnly">
        <description>
          The total number of {{units}} (at the IP layer) sent on the Interface
          between {{param|StartTime}} and {{param|EndTime}}. This MAY be
          calculated by sampling Stats.BytesSent on the {{param|#.Interface}}
          object at {{param|StartTime}} and at {{param|EndTime}} and
          subtracting. If {{param|#.Interface}} is {{empty}}, this parameter
          cannot be determined and SHOULD be 0.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="StartTime" access="readOnly" activeNotify="canDeny">
        <description>
          The start time of this interval which MUST be specified to
          microsecond precision.

          For example: 2008-04-09T15:01:05.123456Z
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="EndTime" access="readOnly" activeNotify="canDeny">
        <description>
          The end time of this interval which MUST be specified to microsecond
          precision.

          For example: 2008-04-09T15:01:05.123456Z
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IP.Diagnostics.TraceRoute.RouteHops.{i}."
        access="readOnly" numEntriesParameter="RouteHopsNumberOfEntries"
        minEntries="0" maxEntries="unbounded" dmr:noUniqueKeys="true"
        version="2.0">
      <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">
        <description>
          {{list}} Each list item contains one or more round trip times in
          {{units}} (one for each repetition) for this hop.

          A list item of 0 indicates that the corresponding response was not
          received. Round trip times of less than 1 {{units}} MUST be rounded
          up to 1.

          The number of list entries is determined by the value of
          {{param|#.NumberOfTries}}.
        </description>
        <syntax>
          <list minItems="1" maxItems="3"/>
          <unsignedInt>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

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

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

      <parameter name="Interface" access="readWrite">
        <description>
          {{reference|IP-layer interface over which the CPE MUST listen and
          receive UDP echo requests on}}

          The value of this parameter MUST be either a valid interface or
          {{empty}}. An attempt to set this parameter to a different value MUST
          be rejected as an invalid parameter value.

          If {{empty}} is specified, the CPE MUST listen and receive UDP echo
          requests on all interfaces.

          Note: Interfaces behind a NAT MAY require port forwarding rules
          configured in the Gateway to enable receiving the UDP packets.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="weak" targetType="row"/>
          </string>
        </syntax>
      </parameter>

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

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

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

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

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

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

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

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

      <parameter name="TimeFirstPacketReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          Time in UTC, which MUST be specified to microsecond precision.

          For example: 2008-04-09T15:01:05.123456,

          The time that the server receives the first UDP echo packet after the
          UDPEchoConfig is enabled.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="TimeLastPacketReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          Time in UTC, which MUST be specified to microsecond precision.

          For example: 2008-04-09T15:01:05.123456

          The time that the server receives the most recent UDP echo packet.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IP.Diagnostics.UploadDiagnostics." access="readOnly"
        minEntries="1" maxEntries="1" version="2.0"
        dmr:previousObject="Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResult.">
      <description>
        This object defines the diagnostics configuration for a HTTP or FTP
        UploadDiagnostics test.

        Files sent by the UploadDiagnostics do not require file storage on the
        CPE device, and MAY be an arbitrary stream of bytes.
      </description>

      <parameter name="DiagnosticsState" access="readWrite">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="DiagnosticsState">
            <enumeration value="None" access="readOnly"/>
            <enumeration value="Requested"/>
            <enumeration value="Canceled" optional="true"/>
            <enumeration value="Complete" access="readOnly"/>
            <enumeration value="Completed" access="readOnly" status="deleted">
              <description>
                {{deprecated|2.13|because it's a typo for {{enum|Complete}}}}

                {{obsoleted|2.16}}

                {{deleted|2.17}}
              </description>
            </enumeration>
            <enumeration value="Error_CannotResolveHostName" access="readOnly"/>
            <enumeration value="Error_NoRouteToHost" access="readOnly"/>
            <enumeration value="Error_InitConnectionFailed" access="readOnly"/>
            <enumeration value="Error_NoResponse" access="readOnly"/>
            <enumeration value="Error_PasswordRequestFailed" access="readOnly"/>
            <enumeration value="Error_LoginFailed" access="readOnly"/>
            <enumeration value="Error_NoTransferMode" access="readOnly"/>
            <enumeration value="Error_NoPASV" access="readOnly"/>
            <enumeration value="Error_NoCWD" access="readOnly"/>
            <enumeration value="Error_NoSTOR" access="readOnly"/>
            <enumeration value="Error_NoTransferComplete" access="readOnly"/>
            <enumeration value="Error_Timeout" access="readOnly"/>
            <enumeration value="Error_Internal" access="readOnly"/>
            <enumeration value="Error_Other" access="readOnly"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite" version="2.0">
        <description>
          {{reference}} The IP-layer interface over which the test is to be
          performed. Example: Device.IP.Interface.1

          {{template|INTERFACE-ROUTING}}
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="weak" targetType="row"/>
          </string>
        </syntax>
      </parameter>

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

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

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

          * When using HTTP transport the HTTP Authentication MUST NOT be used.
        </description>
        <syntax>
          <dataType ref="URL"/>
        </syntax>
      </parameter>

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

      <parameter name="DSCP" access="readWrite" version="2.0">
        <description>
          DiffServ code point for marking packets transmitted in the test.

          The default value SHOULD be zero.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="63"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="EthernetPriority" access="readWrite" version="2.0">
        <description>
          Ethernet priority code for marking packets transmitted in the test
          (if applicable).

          The default value SHOULD be zero.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="7"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TestFileLength" access="readWrite" version="2.0">
        <description>
          The size of the file {{units}} to be uploaded to the server.

          The CPE MUST insure the appropriate number of bytes are sent.
        </description>
        <syntax>
          <unsignedLong>
            <units value="bytes"/>
          </unsignedLong>
        </syntax>
      </parameter>

      <parameter name="TimeBasedTestDuration" access="readWrite" version="2.9">
        <description>
          Controls time based testing {{bibref|TR-143|Section 4.3}}. When
          {{param}} &gt; 0, {{param}} is the duration in {{units}} of a time
          based test. If {{param}} is 0, the test is not based on time, but on
          the size of the file to be uploaded. The default value SHOULD be 0.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="999"/>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TimeBasedTestMeasurementInterval" access="readWrite"
          version="2.9">
        <description>
          The measurement interval duration in {{units}} for objects in
          {{object|IncrementalResult}} for a time based FTP/HTTP upload test
          (when {{param|TimeBasedTestDuration}} &gt; 0). The default value
          SHOULD be 0, which implies {{object|IncrementalResult}} collection is
          disabled.

          For example if {{param|TimeBasedTestDuration}} is 90 {{units}} and
          {{param}} is 10 {{units}}, there will be 9 results in
          {{object|IncrementalResult}}, each with a 10 {{units}} duration.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="999"/>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TimeBasedTestMeasurementOffset" access="readWrite"
          version="2.9">
        <description>
          This {{param}} works in conjunction with
          {{param|TimeBasedTestMeasurementInterval}} and allows the interval
          measurement to start a number of {{units}} after {{param|BOMTime}}.
          The test measurement interval in {{object|IncrementalResult}} starts
          at time {{param|BOMTime}} + {{param}} to allow for slow start window
          removal of file transfers.

          This {{param}} is in {{units}}. The default value SHOULD be 0.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ProtocolVersion" access="readWrite" version="2.9">
        <description>
          Indicates the IP protocol version to be used. The default value
          SHOULD be {{enum|Any}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Any">
              <description>
                Use either IPv4 or IPv6 depending on the system preference.
              </description>
            </enumeration>
            <enumeration value="IPv4">
              <description>Use IPv4 for the requests</description>
            </enumeration>
            <enumeration value="IPv6">
              <description>Use IPv6 for the requests.</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="NumberOfConnections" access="readWrite" version="2.9">
        <description>
          The number of connections to be used in the test. The default value
          SHOULD be 1. {{param}} MUST NOT be set to a value greater than
          {{param|UploadDiagnosticsMaxConnections}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="IPAddressUsed" access="readOnly" version="2.9"
          dmr:previousParameter="NumberOfConnections">
        <description>
          Indicates which IP address was used to send the request.
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
        </syntax>
      </parameter>

      <parameter name="UploadDiagnosticsMaxConnections" access="readOnly"
          version="2.9">
        <description>
          Indicates the maximum number of connections that are supported by
          Upload Diagnostics.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="UploadDiagnosticsMaxIncrementalResult"
          access="readOnly" version="2.9">
        <description>
          The maximum number of rows in {{object|IncrementalResult}} that the
          CPE will store.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ROMTime" access="readOnly" activeNotify="canDeny"
          version="2.0">
        <description>
          Request time in UTC, which MUST be specified to microsecond
          precision.

          For example: 2008-04-09T15:01:05.123456Z

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

          * For FTP this is the time at which the client sends the RTRV
            command.

          If multiple connections are used, then {{param}} is set to the
          earliest {{param}} across all connections.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="BOMTime" access="readOnly" activeNotify="canDeny"
          version="2.0">
        <description>
          Begin of transmission time in UTC, which MUST be specified to
          microsecond precision

          For example: 2008-04-09T15:01:05.123456Z

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

          * For FTP this is the time at which the client receives the first
            data packet on the data connection.

          If multiple connections are used, then {{param}} is set to the
          earliest {{param}} across all connections.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="EOMTime" access="readOnly" activeNotify="canDeny"
          version="2.0">
        <description>
          End of transmission in UTC, which MUST be specified to microsecond
          precision.

          For example: 2008-04-09T15:01:05.123456Z

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

          * For FTP this is the time at which the client receives the last
            packet on the data connection.

          If multiple connections are used, then {{param}} is set to the latest
          {{param}} across all connections.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="TestBytesSent" access="readOnly" version="2.9">
        <description>
          The number of {{units}} of the test file sent during the FTP/HTTP
          transaction including FTP/HTTP headers, between {{param|BOMTime}} and
          {{param|EOMTime}} across all connections.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="TotalBytesReceived" access="readOnly" version="2.9">
        <description>
          The total number of {{units}} (at the IP layer) received on the
          Interface between {{param|BOMTime}} and {{param|EOMTime}}. This MAY
          be calculated by sampling Stats.BytesReceived on the
          {{param|Interface}} object at {{param|BOMTime}} and at
          {{param|EOMTime}} and subtracting. If {{param|Interface}} is
          {{empty}}, this parameter cannot be determined and SHOULD be 0.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="TotalBytesSent" access="readOnly" version="2.0">
        <description>
          The total number of {{units}} (at the IP layer) sent on the Interface
          between {{param|BOMTime}} and {{param|EOMTime}}. This MAY be
          calculated by sampling Stats.BytesSent on the {{param|Interface}}
          object at {{param|BOMTime}} and at {{param|EOMTime}} and subtracting.
          If {{param|Interface}} is {{empty}}, this parameter cannot be
          determined and SHOULD be 0.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="TestBytesSentUnderFullLoading" access="readOnly"
          version="2.9">
        <description>
          The number of {{units}} of the test file sent between the latest
          {{param|PerConnectionResult.{i}.BOMTime}} and the earliest
          {{param|PerConnectionResult.{i}.EOMTime}} across all connections.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="TotalBytesReceivedUnderFullLoading" access="readOnly"
          version="2.9">
        <description>
          The total number of {{units}} (at the IP layer) received between the
          latest {{param|PerConnectionResult.{i}.BOMTime}} and the earliest
          {{param|PerConnectionResult.{i}.EOMTime}} across all connections in
          the test. This MAY be calculated by sampling Stats.BytesReceived on
          the {{param|Interface}} object at the latest
          {{param|PerConnectionResult.{i}.BOMTime}} and at the earliest
          {{param|PerConnectionResult.{i}.EOMTime}} and subtracting. If
          {{param|Interface}} is {{empty}}, this parameter cannot be determined
          and SHOULD be 0.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="TotalBytesSentUnderFullLoading" access="readOnly"
          version="2.9">
        <description>
          The total number of {{units}} (at the IP layer) sent between the
          latest {{param|PerConnectionResult.{i}.BOMTime}} and the earliest
          {{param|PerConnectionResult.{i}.EOMTime}} across all connections in
          the test. This MAY be calculated by sampling Stats.BytesSent on the
          {{param|Interface}} object at the latest
          {{param|PerConnectionResult.{i}.BOMTime}} and at the earliest
          {{param|PerConnectionResult.{i}.EOMTime}} and subtracting. If
          {{param|Interface}} is {{empty}}, this parameter cannot be determined
          and SHOULD be 0.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PeriodOfFullLoading" access="readOnly" version="2.9">
        <description>
          The period of time in {{units}} between the latest
          {{param|PerConnectionResult.{i}.BOMTime}} and the earliest
          {{param|PerConnectionResult.{i}.EOMTime}} of the test.
        </description>
        <syntax>
          <unsignedInt>
            <units value="microseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TCPOpenRequestTime" access="readOnly"
          activeNotify="canDeny" version="2.0">
        <description>
          Request time in UTC, which MUST be specified to microsecond
          precision.

          For example: 2008-04-09T15:01:05.123456Z

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

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

          Note: Interval of 1 microsecond SHOULD be supported.

          If multiple connections are used, then {{param}} is set to the latest
          {{param}} across all connections.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="TCPOpenResponseTime" access="readOnly"
          activeNotify="canDeny" version="2.0">
        <description>
          Response time in UTC, which MUST be specified to microsecond
          precision.

          For example: 2008-04-09T15:01:05.123456Z

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

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

          Note: Interval of 1 microsecond SHOULD be supported.

          If multiple connections are used, then {{param}} is set to the latest
          {{param}} across all connections.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="PerConnectionResultNumberOfEntries" access="readOnly"
          dmr:previousParameter="TCPOpenResponseTime" version="2.9">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="EnablePerConnectionResults" access="readWrite"
          activeNotify="canDeny" version="2.9"
          dmr:previousParameter="TCPOpenResponseTime">
        <description>
          The results must be returned in the {{object|PerConnectionResult}}
          table for every connection when set to {{true}}. The default value
          SHOULD be {{false}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="IncrementalResultNumberOfEntries" access="readOnly"
          dmr:previousParameter="EnablePerConnectionResults" version="2.9">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.{i}."
        access="readOnly"
        numEntriesParameter="PerConnectionResultNumberOfEntries" minEntries="0"
        maxEntries="unbounded" dmr:noUniqueKeys="true" version="2.9">
      <description>
        Results for individual connections. This table is only populated when
        {{param|#.EnablePerConnectionResults}} is {{true}}. A new object is
        created for each connection specified in
        {{param|#.NumberOfConnections}}. Instance numbers MUST start at 1 and
        sequentially increment as new instances are created. All instances are
        removed when {{param|#.DiagnosticsState}} is set to
        {{enum|Requested|#.DiagnosticsState}} or
        {{enum|None|#.DiagnosticsState}}.
      </description>

      <parameter name="ROMTime" access="readOnly" activeNotify="canDeny">
        <description>
          Request time in UTC, which MUST be specified to microsecond
          precision.

          For example: 2008-04-09T15:01:05.123456Z

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

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

      <parameter name="BOMTime" access="readOnly" activeNotify="canDeny">
        <description>
          Begin of transmission time in UTC, which MUST be specified to
          microsecond precision

          For example: 2008-04-09T15:01:05.123456Z

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

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

      <parameter name="EOMTime" access="readOnly" activeNotify="canDeny">
        <description>
          End of transmission in UTC, which MUST be specified to microsecond
          precision.

          For example: 2008-04-09T15:01:05.123456Z

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

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

      <parameter name="TestBytesSent" access="readOnly">
        <description>
          The number of {{units}} of the test file sent during the FTP/HTTP
          transaction including FTP/HTTP headers, between {{param|BOMTime}} and
          {{param|EOMTime}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="TotalBytesReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of {{units}} (at the IP layer) received on the
          Interface between {{param|BOMTime}} and {{param|EOMTime}}. This MAY
          be calculated by sampling Stats.BytesReceived on the
          {{param|#.Interface}} object at {{param|BOMTime}} and at
          {{param|EOMTime}} and subtracting. If {{param|#.Interface}} is
          {{empty}}, this parameter cannot be determined and SHOULD be 0.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="TotalBytesSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of {{units}} (at the IP layer) sent on the Interface
          between {{param|BOMTime}} and {{param|EOMTime}}. This MAY be
          calculated by sampling Stats.BytesSent on the {{param|#.Interface}}
          object at {{param|BOMTime}} and at {{param|EOMTime}} and subtracting.
          If {{param|#.Interface}} is {{empty}}, this parameter cannot be
          determined and SHOULD be 0.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="TCPOpenRequestTime" access="readOnly"
          activeNotify="canDeny">
        <description>
          Request time in UTC, which MUST be specified to microsecond
          precision.

          For example: 2008-04-09T15:01:05.123456Z

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

          * For FTP this is the time at which the TCP socket open (SYN) was
            sent for the data connection.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="TCPOpenResponseTime" access="readOnly"
          activeNotify="canDeny">
        <description>
          Response time in UTC, which MUST be specified to microsecond
          precision.

          For example: 2008-04-09T15:01:05.123456Z

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

          * For FTP this is the time at which the TCP ACK to the socket opening
            the data connection was received.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.IP.Diagnostics.UploadDiagnostics.IncrementalResult.{i}."
        access="readOnly"
        numEntriesParameter="IncrementalResultNumberOfEntries" minEntries="0"
        maxEntries="unbounded" dmr:noUniqueKeys="true" version="2.9">
      <description>
        Results for time segmented tests (tests where
        {{param|#.TimeBasedTestDuration}} &gt; 0 and
        {{param|#.TimeBasedTestMeasurementInterval}} &gt; 0). This data is
        totaled across all connections in the test. A new object is created
        every {{param|#.TimeBasedTestMeasurementInterval}} after that interval
        has completed. Instance numbers MUST start at 1 and sequentially
        increment as new instances are created. All instances are removed when
        {{param|#.DiagnosticsState}} is set to
        {{enum|Requested|#.DiagnosticsState}} or
        {{enum|None|#.DiagnosticsState}}.
      </description>

      <parameter name="TestBytesSent" access="readOnly">
        <description>
          Change in the value of {{param|#.TestBytesSent}} between
          {{param|StartTime}} and {{param|EndTime}}, measured in {{units}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="TotalBytesReceived" access="readOnly">
        <description>
          The total number of {{units}} (at the IP layer) received on the
          Interface between {{param|StartTime}} and {{param|EndTime}}. This MAY
          be calculated by sampling Stats.BytesReceived on the
          {{param|#.Interface}} object at {{param|StartTime}} and at
          {{param|EndTime}} and subtracting. If {{param|#.Interface}} is
          {{empty}}, this parameter cannot be determined and SHOULD be 0.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="TotalBytesSent" access="readOnly">
        <description>
          The total number of {{units}} (at the IP layer) sent on the Interface
          between {{param|StartTime}} and {{param|EndTime}}. This MAY be
          calculated by sampling Stats.BytesSent on the {{param|#.Interface}}
          object at {{param|StartTime}} and at {{param|EndTime}} and
          subtracting. If {{param|#.Interface}} is {{empty}}, this parameter
          cannot be determined and SHOULD be 0.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="StartTime" access="readOnly" activeNotify="canDeny">
        <description>
          The start time of this interval which MUST be specified to
          microsecond precision.

          For example: 2008-04-09T15:01:05.123456Z
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="EndTime" access="readOnly" activeNotify="canDeny">
        <description>
          The end time of this interval which MUST be specified to microsecond
          precision.

          For example: 2008-04-09T15:01:05.123456Z
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IP.Diagnostics.UDPEchoDiagnostics." access="readOnly"
        minEntries="1" maxEntries="1" version="2.9">
      <description>
        This object defines the diagnostics configuration for a UDP Echo test
        {{bibref|TR-143|Appendix A.1}} defined in {{bibref|RFC862}} or a UDP
        Echo Plus test defined in {{bibref|TR-143|Appendix A.1}}.
      </description>

      <parameter name="DiagnosticsState" access="readWrite"
          activeNotify="canDeny">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="DiagnosticsState">
            <enumeration value="None" access="readOnly"/>
            <enumeration value="Requested"/>
            <enumeration value="Canceled" optional="true"/>
            <enumeration value="Complete" access="readOnly"/>
            <enumeration value="Completed" access="readOnly" status="deleted">
              <description>
                {{deprecated|2.13|because it's a typo for {{enum|Complete}}}}

                {{obsoleted|2.16}}

                {{deleted|2.17}}
              </description>
            </enumeration>
            <enumeration value="Error_CannotResolveHostName" access="readOnly"/>
            <enumeration value="Error_Internal" access="readOnly"/>
            <enumeration value="Error_Other" access="readOnly"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite" version="2.9">
        <description>
          The IP-layer interface over which the test is to be performed.
          Example: Device.IP.Interface.1

          {{template|INTERFACE-ROUTING}}
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent=".IP.Interface."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Host" access="readWrite" activeNotify="canDeny"
          version="2.9">
        <description>
          Host name or address of the host to perform tests to.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Port" access="readWrite" activeNotify="canDeny"
          version="2.9">
        <description>
          Port on the host to perform tests to.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="65535"/>
          </unsignedInt>
          <default type="factory" value="7"/>
        </syntax>
      </parameter>

      <parameter name="NumberOfRepetitions" access="readWrite"
          activeNotify="canDeny" version="2.9">
        <description>
          Number of repetitions of the test to perform before reporting the
          results. The default value SHOULD be 1.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Timeout" access="readWrite" activeNotify="canDeny"
          version="2.9">
        <description>
          Timeout in {{units}} for the test. That is, the amount of time to
          wait for the return of a packet that was sent to the {{param|Host}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="DataBlockSize" access="readWrite"
          activeNotify="canDeny" version="2.9">
        <description>
          Size of the data block in {{units}} to be sent for each packet. The
          default value SHOULD be 24.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="65535"/>
            <units value="bytes"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="DSCP" access="readWrite" activeNotify="canDeny"
          version="2.9">
        <description>
          DiffServ codepoint to be used for the test packets. The default value
          SHOULD be zero.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="63"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="InterTransmissionTime" access="readWrite"
          activeNotify="canDeny" version="2.9">
        <description>
          The time in {{units}} between the {{param|NumberOfRepetitions}} of
          packets sent during a given test. The default value SHOULD be 1000.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="65535"/>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ProtocolVersion" access="readWrite" version="2.9">
        <description>
          Indicates the IP protocol version to be used. The default value
          SHOULD be {{enum|Any}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Any">
              <description>
                Use either IPv4 or IPv6 depending on the system preference.
              </description>
            </enumeration>
            <enumeration value="IPv4">
              <description>Use IPv4 for the requests</description>
            </enumeration>
            <enumeration value="IPv6">
              <description>Use IPv6 for the requests.</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="IPAddressUsed" access="readOnly" version="2.9">
        <description>
          Indicates which IP address was used to send the request.
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
        </syntax>
      </parameter>

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

      <parameter name="FailureCount" access="readOnly" version="2.9">
        <description>
          Result parameter indicating the number of failed packets (those in
          which a successful response was not received prior to the timeout) in
          the most recent test.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

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

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

      <parameter name="MaximumResponseTime" access="readOnly" version="2.9">
        <description>
          Result parameter indicating the maximum response time in {{units}}
          over all repetitions with successful responses of the most recent
          test. If there were no successful responses, this value MUST be zero.
        </description>
        <syntax>
          <unsignedInt>
            <units value="microseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="EnableIndividualPacketResults" access="readWrite"
          activeNotify="canDeny" version="2.9"
          dmr:previousParameter="MaximumResponseTime">
        <description>
          The results must be returned in the {{object|IndividualPacketResult}}
          table for every repetition of the test when set to {{true}}. The
          default value SHOULD be {{false}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="IndividualPacketResultNumberOfEntries"
          access="readOnly"
          dmr:previousParameter="EnableIndividualPacketResults">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="UDPEchoDiagnosticsMaxResults" access="readOnly"
          version="2.9" dmr:previousParameter="EnableIndividualPacketResults">
        <description>
          The maximum number of rows in {{object|IndividualPacketResult}} that
          the CPE will store. If a test would create more rows than {{param}}
          only the first {{param}} rows are present in
          {{object|IndividualPacketResult}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.{i}."
        access="readOnly"
        numEntriesParameter="IndividualPacketResultNumberOfEntries"
        minEntries="0" maxEntries="unbounded" dmr:noUniqueKeys="true"
        version="2.9">
      <description>
        This object provides the results from individual UDPEchoPlus test
        packets collected during a test if
        {{param|#.EnableIndividualPacketResults}} is set to true. When
        {{param|#.DiagnosticsState}} is set to
        {{enum|Complete|#.DiagnosticsState}} it should contain
        {{param|#.NumberOfRepetitions}} objects. Instance numbers MUST start at
        1 and sequentially increment as new instances are created. The instance
        number should match the TestIterationNumber field of the request and
        response packet. All instances are removed when
        {{param|#.DiagnosticsState}} is set to
        {{enum|Requested|#.DiagnosticsState}} or
        {{enum|None|#.DiagnosticsState}}.
      </description>

      <parameter name="PacketSuccess" access="readOnly">
        <description>
          Indicates that the response to this UDP Echo Plus packet sent was
          received by the client. When this value is {{true}}, then all the
          remaining parameters in this instance are valid. Otherwise only the
          values originally set by the CPE client (e.g.
          {{param|PacketSendTime}} and {{param|TestGenSN}}) MAY be set to valid
          values.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="PacketSendTime" access="readOnly">
        <description>
          Time the client sent this UDP Echo Plus packet in UTC, which MUST be
          specified to microsecond precision.

          For example: 2008-04-09T15:01:05.123456Z
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="PacketReceiveTime" access="readOnly">
        <description>
          Time the client receives the response packet in UTC, which MUST be
          specified to microsecond precision.

          For example: 2008-04-09T15:01:05.123456Z

          If this response is never received, {{param}} SHOULD be set to the
          Unknown Time value as specified in {{bibref|TR-106|Section 3.2.2}}.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="TestGenSN" access="readOnly">
        <description>
          The TestGenSN field in the UDPEcho Plus packet
          {{bibref|TR-143|Section A.1.4}} sent by the CPE client.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="TestRespSN" access="readOnly">
        <description>
          The TestRespSN field in the response packet {{bibref|TR-143|Section
          A.1.4}} from the UDP Echo Plus server (i.e. {{param|#.Host}}) for
          this Echo Plus packet sent by the CPE client. If
          {{param|PacketSuccess}} is {{false}}, {{param}} SHOULD be 0.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="TestRespRcvTimeStamp" access="readOnly">
        <description>
          The TestRespRcvTimeStamp field in the response packet
          {{bibref|TR-143|Section A.1.4}} from the UDP Echo Plus server (i.e.
          {{param|#.Host}}) to record the reception time in {{units}} of this
          UDP Echo Plus packet sent from the CPE client. If
          {{param|PacketSuccess}} is {{false}}, {{param}} SHOULD be 0.
        </description>
        <syntax>
          <unsignedInt>
            <units value="microseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TestRespReplyTimeStamp" access="readOnly">
        <description>
          The TestRespReplyTimeStamp field in the response packet
          {{bibref|TR-143|Section A.1.4}} from the UDP Echo Plus server (i.e.
          {{param|#.Host}}) to record the server reply time in {{units}} of
          this UDP Echo Plus packet sent from the CPE client.

          That is, the time that the server returned the UDP Echo Plus packet.
          If {{param|PacketSuccess}} is {{false}}, {{param}} SHOULD be 0.
        </description>
        <syntax>
          <unsignedInt>
            <units value="microseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TestRespReplyFailureCount" access="readOnly">
        <description>
          The count value that was set by the UDP Echo Plus server (i.e.
          {{param|#.Host}}) to record the number of dropped echo response
          packets by the server. This count is incremented if a valid echo
          request packet is received at a UDP EchoPlus server but for some
          reason cannot be responded to (e.g. due to local buffer overflow, CPU
          utilization, etc...). If {{param|PacketSuccess}} is {{false}},
          {{param}} SHOULD be 0.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IP.Diagnostics.IPLayerCapacityMetrics."
        access="readOnly" minEntries="1" maxEntries="1"
        dmr:previousObject="Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult."
        version="2.14">
      <description>
        This object defines the diagnostics configuration for a IP Layer
        Capacity test. IP Layer Capacity measurement is specified in
        {{bibref|TR-471}}.

        Files received in the IP Layer Capacity test do not require file
        storage on the CPE device.

        If {{param|AuthenticationEnabled}} is set to {{true}}, one of the
        following combinations of {{param|AuthenticationCode}},
        {{param|AuthenticationAlias}} and
        {{param|AuthenticationKeyFileLocation}} MUST be met. Otherwise, the
        client returns an error.

        If only {{param|AuthenticationCode}} is provided, the client uses the
        value directly as the key.

        If both {{param|AuthenticationCode}} and {{param|AuthenticationAlias}}
        are provided but {{param|AuthenticationKeyFileLocation}} is not
        provided, the client uses the {{param|AuthenticationCode}} as the key
        and the {{param|AuthenticationAlias}} as key ID. The
        {{object|IPLayerCapacityAuthCode}} table is ignored.

        If only {{param|AuthenticationAlias}} is provided, the client uses the
        {{object|IPLayerCapacityAuthCode}} table to derive the
        {{param|IPLayerCapacityAuthCode.{i}.Alias}} to use as key ID, and the
        {{param|IPLayerCapacityAuthCode.{i}.AuthenticationKey}} as the key.

        If both {{param|AuthenticationAlias}} and
        {{param|AuthenticationKeyFileLocation}} are provided, but
        {{param|AuthenticationCode}} is not provided, the client uses the
        {{param|AuthenticationAlias}} as key ID along with
        {{param|AuthenticationKeyFileLocation}} as file location. The
        {{object|IPLayerCapacityAuthCode}} table is ignored.

        If only {{param|AuthenticationAlias}} is provided, and the
        {{object|IPLayerCapacityAuthCode}} does not contain the
        {{param|AuthenticationAlias}}, the client returns an error.

        If only {{param|AuthenticationKeyFileLocation}} is provided, the file
        specified MUST contain a single entry. Otherwise, the client returns an
        error.
      </description>

      <parameter name="DiagnosticsState" access="readWrite">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="DiagnosticsState">
            <enumeration value="None" access="readOnly"/>
            <enumeration value="Requested"/>
            <enumeration value="Canceled" optional="true"/>
            <enumeration value="Complete" access="readOnly"/>
            <enumeration value="Error_CannotResolveHostName" access="readOnly"/>
            <enumeration value="Error_NoRouteToHost" access="readOnly"/>
            <enumeration value="Error_InitConnectionFailed" access="readOnly"/>
            <enumeration value="Error_NoResponse" access="readOnly"/>
            <enumeration value="Error_PasswordRequestFailed" access="readOnly"/>
            <enumeration value="Error_LoginFailed" access="readOnly"/>
            <enumeration value="Error_RejectedByRemote" access="readOnly"/>
            <enumeration value="Error_IncorrectSize" access="readOnly"/>
            <enumeration value="Error_Timeout" access="readOnly"/>
            <enumeration value="Error_Internal" access="readOnly"/>
            <enumeration value="Error_Other" access="readOnly"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="IPLayerMaxConnections" access="readOnly" version="2.14">
        <description>
          Indicates the maximum number of connections that are supported for an
          IP-Layer Capacity test.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="IPLayerMaxIncrementalResult" access="readOnly"
          version="2.14">
        <description>
          The maximum number of rows in {{object|IncrementalResult}} that the
          device will store.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="IPLayerCapSupportedSoftwareVersion" access="readOnly"
          version="2.15">
        <description>
          Indicates the installed version of the test software. The software
          version string will be implementation-dependent, and SHOULD identify
          both the implementation and the version (e.g., UDPST-7.2.1).
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="IPLayerCapSupportedControlProtocolVersion"
          access="readOnly" version="2.15">
        <description>
          Indicates the control protocol version supported by the test
          software. Refer to {{bibref|TR-471}} for more information.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="IPLayerCapSupportedMetrics" access="readOnly"
          version="2.14">
        <description>
          Indicates the test metrics from {{bibref|TR-471|Section 5.2}} that
          are supported by the device.

          Note that {{bibref|TR-471}} mandates support for and use of IPLR and
          Sampled RTT.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="IPLR">
              <description>IP packet Loss Ratio</description>
            </enumeration>
            <enumeration value="Sampled_RTT">
              <description>Sampled Round Trip Time</description>
            </enumeration>
            <enumeration value="IPDV" optional="true">
              <description>IP packet Delay Variation</description>
            </enumeration>
            <enumeration value="IPRR" optional="true">
              <description>IP packet Reordering Ratio</description>
            </enumeration>
            <enumeration value="RIPR" optional="true">
              <description>Replicated IP packet Ratio</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="IPLayerCapacityAuthCodeNumberOfEntries"
          access="readOnly" version="2.19">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite" version="2.14"
          dmr:previousParameter="SupportedTestProtocols">
        <description>
          {{reference}} The IP-layer interface over which the test is to be
          performed. Example: Device.IP.Interface.1

          {{template|INTERFACE-ROUTING}}
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="weak" targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Role" access="readWrite" version="2.14">
        <description>
          Indicates whether the device will act as Sender or Receiver of test
          packets.
        </description>
        <syntax>
          <string>
            <enumeration value="Receiver">
              <description>The device will act as the Receiver.</description>
            </enumeration>
            <enumeration value="Sender">
              <description>The device will act as the Sender.</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="Host" access="readWrite" status="obsoleted"
          version="2.14">
        <description>
          The Fully Qualified Domain Name (FQDN) or IP address of the Test
          Endpoint to perform the UDP Capacity tests with.

          {{deprecated|2.17|because it is superseded by {{param|ServerList}}
          with multi-flow and server capability. Refer to {{bibref|TR-471}} for
          details}}

          {{obsoleted|2.19}}
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ServerList" access="readWrite" version="2.17">
        <description>
          A list of servers intended as testing partners for the client. The
          client works through the server list attempting individual test flows
          in a round-robin sequence. One flow is attempted to each server and
          all flows are required for testing, unless the optional
          {{param|FlowCount}} and {{param|MaximumFlows}} parameters are
          specified. The list contains each server’s Fully Qualified Domain
          Name or IP address and listening port in the format ''server:port''.
        </description>
        <syntax>
          <list maxItems="100"/>
          <string>
            <size maxLength="256"/>
            <size/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Port" access="readWrite" status="obsoleted"
          activeNotify="canDeny" version="2.14">
        <description>
          Port on the Test Endpoint host.

          {{deprecated|2.17|because it is superseded by {{param|ServerList}}
          with multi-flow and server capability. Refer to {{bibref|TR-471}} for
          details}}

          {{obsoleted|2.19}}
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="JumboFramesPermitted" access="readWrite" version="2.14">
        <description>
          If {{true}}, jumbo frames are allowed above 1 Gbps. The default value
          SHOULD be {{true}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MTU" access="readWrite" version="2.19">
        <description>
          The MTU to be used for this test. Common MTU settings are 1500, 1250
          and 9000.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="implementation" value="1500"/>
        </syntax>
      </parameter>

      <parameter name="LocalInterfaceRateIncluded" access="readWrite"
          version="2.19">
        <description>
          When set to {{true}}, the client is invoked with the option which
          uses the bytes statistics on the interface along with the test
          traffic to determine the maximum IP layer capacity. When set to
          {{false}}, only test traffic is used to calculate IP layer capacity
          metrics.
        </description>
        <syntax>
          <boolean/>
          <default type="implementation" value="true"/>
        </syntax>
      </parameter>

      <parameter name="AuthenticationEnabled" access="readWrite"
          version="2.19">
        <description>
          If {{true}}, client uses authentication for the test. If {{false}},
          the client does not use authentication. Refer to
          {{template|IPLAYERCAPACITY}} for description on how the input
          arguments are provided to enable authentication for the test.
        </description>
        <syntax>
          <boolean/>
          <default type="implementation" value="false"/>
        </syntax>
      </parameter>

      <parameter name="AuthenticationCode" access="readWrite" version="2.19">
        <description>
          The authentication code or key to use when the client connects to the
          server. Refer to {{template|IPLAYERCAPACITY}} for description on how
          the input arguments are provided to enable authentication for the
          test.
        </description>
        <syntax secured="true">
          <string/>
        </syntax>
      </parameter>

      <parameter name="AuthenticationAlias" access="readWrite" version="2.19">
        <description>
          The reference to {{object|IPLayerCapacityAuthCode}} table by Alias.
          Refer to {{template|IPLAYERCAPACITY}} for description on how the
          input arguments are provided to enable authentication for the test.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="AuthenticationKeyFileLocation" access="readWrite"
          version="2.19">
        <description>
          The key file location the client uses to derive the
          {{param|AuthenticationCode}} and {{param|AuthenticationAlias}} to be
          used for authentication. Refer to {{template|IPLAYERCAPACITY}} for
          description on how the input arguments are provided to enable
          authentication for the test.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="NumberOfConnections" access="readWrite"
          status="obsoleted" version="2.14">
        <description>
          The number of connections to be used in the test. The default value
          SHOULD be 1. {{param}} MUST NOT be set to a value greater than
          {{param|{{template|IP-DIAGNOSTICS-PARENT}}IPLayerMaxConnections}}.

          {{deprecated|2.17|because it is superseded by {{param|ServerList}}
          with multi-flow and server capability and related parameters. Refer
          to {{bibref|TR-471}} for details}}

          {{obsoleted|2.19}}
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="FlowCount" access="readWrite" version="2.17">
        <description>
          Optional Number of flows required for a test. The default SHOULD be 0
          (a magic number that indicates the parameter is not used). {{param}}
          MUST NOT be set to a value greater than
          {{param|{{template|IP-DIAGNOSTICS-PARENT}}IPLayerMaxConnections}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MaximumFlows" access="readWrite" version="2.17">
        <description>
          Optional number of flows to attempt. MaximumFlows must be greater
          than the size of ServerList or FlowCount.

          The default SHOULD be 0 (a magic number that indicates the parameter
          is not used). {{param}} MUST NOT be set to a value greater than
          {{param|{{template|IP-DIAGNOSTICS-PARENT}}IPLayerMaxConnections}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

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

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

      <parameter name="ProtocolVersion" access="readWrite" version="2.14">
        <description>
          Indicates the IP protocol version to be used. The default value
          SHOULD be {{enum|Any}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Any">
              <description>
                Use either IPv4 or IPv6 depending on the system preference.
              </description>
            </enumeration>
            <enumeration value="IPv4">
              <description>Use IPv4 for the requests</description>
            </enumeration>
            <enumeration value="IPv6">
              <description>Use IPv6 for the requests.</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="UDPPayloadMin" access="readWrite" version="2.14">
        <description>
          Minimum reference size of UDP payload in {{units}}. No default. The
          implementation will algorithmically determine a value if none is
          configured. The value SHOULD be set to a value that avoids
          fragmentation (i.e., using path MTU discovery).
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="35" maxInclusive="8972"/>
            <units value="octets"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="UDPPayloadMax" access="readWrite" version="2.14">
        <description>
          Maximum reference size of UDP payload in {{units}}. No default. The
          implementation will algorithmically determine a value if none is
          configured. The value SHOULD be set to the largest value that avoids
          fragmentation (i.e., using path MTU discovery). If
          {{param|JumboFramesPermitted}} is {{false}}, the maximum value MUST
          be 1472 octets. If {{param|JumboFramesPermitted}} is {{true}}, this
          value can be as large as 8972 octets. {{param}} MUST be greater than
          or equal to {{param|UDPPayloadMin}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="35" maxInclusive="8972"/>
            <units value="octets"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="UDPPayloadContent" access="readWrite" version="2.15">
        <description>
          UDP Payload Content Type, If there is payload compression in the path
          and tests intend to characterize a possible advantage due to
          compression, then payload content SHOULD be supplied by a
          pseudo-random sequence generator, by using part of a compressed file,
          or by other means. Payload may also contain the test protocol PDUs.
          The default value SHOULD be {{enum|zeroes}}.
        </description>
        <syntax>
          <string>
            <enumeration value="zeroes">
              <description>All zero (0) payload content.</description>
            </enumeration>
            <enumeration value="ones">
              <description>All one (1) payload content.</description>
            </enumeration>
            <enumeration value="alternates0and1">
              <description>
                Alternating zero (0) and one (1) payload content.
              </description>
            </enumeration>
            <enumeration value="random">
              <description>Random payload content.</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="PortMin" access="readWrite" version="2.14">
        <description>
          Starting value for range of Dynamic Ports supported for test traffic
          and status feedback messages. {{param}} MUST be less than or equal to
          {{param|PortMax}}, if specified. If {{param}} and {{param|PortMax}}
          are not specified, the full range of Ports in the Dynamic Ports range
          (49152-65535) that have been specifically set aside by IANA MAY be
          used.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="49152" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="PortMax" access="readWrite" version="2.14">
        <description>
          Indicates the upper bound of the supported Dynamic Port range, where
          {{param|PortMin}} indicates the starting port number. {{param}} MUST
          be greater than or equal to {{param|PortMin}}, if specified. If
          {{param|PortMin}} and {{param}} are not specified, the full range of
          Ports in the Dynamic Ports range (49152-65535) that have been
          specifically set aside by IANA MAY be used.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="49152" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="PortOptionalMin" access="readWrite" version="2.14">
        <description>
          Starting value for range of User Ports supported for test traffic and
          status feedback messages. A value of zero (0) indicates no User Ports
          are used for test traffic or status feedback messages.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="0"/>
            <range minInclusive="1024" maxInclusive="49151"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="PortOptionalMax" access="readWrite" version="2.14">
        <description>
          Indicates the upper bound of the supported User Port range, where
          {{param|PortOptionalMin}} indicates the starting port number.
          {{param}} MUST be greater than or equal to {{param|PortOptionalMin}}.
          A value of zero (0) indicates no User Ports are used for test traffic
          or status feedback messages.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="0"/>
            <range minInclusive="1024" maxInclusive="49151"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TestType" access="readWrite" version="2.14">
        <description>
          Indicates the type of IP-Layer Capacity test being run. The default
          value SHOULD be {{enum|Search}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Search">
              <description>
                Search algorithm will be used to determine sending rate.
              </description>
            </enumeration>
            <enumeration value="Fixed">
              <description>Fixed sending rate will be used.</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="IPDVEnable" access="readWrite" version="2.14">
        <description>
          Enables one-way IPDV (IP Packet Delay Variation) metric for load rate
          adjustment algorithm. When {{true}} (enabled), one-way delay
          variation is used, otherwise round-trip delay variation is used. The
          default value SHOULD be {{false}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="IPRREnable" access="readWrite" version="2.14">
        <description>
          Enables IPRR (IP packet Reordering Ratio) metric. The default value
          SHOULD be {{false}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="RIPREnable" access="readWrite" version="2.15">
        <description>
          Enables RIPRR (Replicated IP Packet Ratio) metric. The default value
          SHOULD be {{false}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="PreambleDuration" access="readWrite" version="2.14">
        <description>
          Duration of the preamble testing, when traffic is being sent and/or
          received but the test clock has not been started. This is done to
          ensure all network elements in the path are "awake". The default
          value SHOULD be 2 {{units}}. Value specified in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="5"/>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MaximumTestBandwidth" access="readWrite" version="2.19">
        <description>
          The rate limiting or admission control bandwidth to be configured on
          the client for the test. A value of 0 indicates the client does not
          use rate limiting or admission control. The value is expressed in
          {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="32767"/>
            <units value="Mbps"/>
          </unsignedInt>
          <default type="implementation" value="0"/>
        </syntax>
      </parameter>

      <parameter name="StartSendingRate" access="readWrite" version="2.14">
        <description>
          The Sending Rate for a {{enum|Fixed|TestType}} test or the initial
          Sending Rate value for a {{enum|Search|TestType}} test. Value
          specified in {{units}}. The default value SHOULD be 500 {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="500" maxInclusive="40000000"/>
            <units value="kbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="StartSendingRateIndex" access="readWrite"
          version="2.16">
        <description>
          The configurable initial Sending Rate index (to a row of the sending
          rate table) for a {{enum|Fixed|TestType}} or {{enum|Search|TestType}}
          test. {{param}} overrides {{param|StartSendingRate}} if both
          parameters are present. See Annex A of {{bibref|TR-471}} for details.
          The default value SHOULD be 0.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="11108"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="NumberTestSubIntervals" access="readWrite"
          version="2.14">
        <description>
          Number of intermediate measurement reporting intervals. The value
          MUST NOT be greater than
          {{param|{{template|IP-DIAGNOSTICS-PARENT}}IPLayerMaxIncrementalResult}}.
          The default value SHOULD be 10.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="100"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="NumberFirstModeTestSubIntervals" access="readWrite"
          version="2.15">
        <description>
          When the value &gt;= 1, bimodal test mode is requested and the value
          represents the number of sub-intervals to be included in the first
          capacity test mode. The remaining sub-intervals of
          {{param|NumberTestSubIntervals}} are for the second capacity test
          mode. Value = 0 indicates that bimodal testing is disabled. The value
          MUST NOT be greater than {{param|NumberTestSubIntervals}}. The
          default value SHOULD be 0.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="100"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TestSubInterval" access="readWrite" version="2.14">
        <description>
          Duration of intermediate measurement reporting intervals. {{param}} *
          {{param|NumberTestSubIntervals}} MUST result in an integer value in
          seconds, in the range 5 seconds &lt;= {{param}} *
          {{param|NumberTestSubIntervals}} &lt;= 60 seconds. The default value
          SHOULD be 1000 {{units}}. Value specified in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="100" maxInclusive="6000"/>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="StatusFeedbackInterval" access="readWrite"
          version="2.14">
        <description>
          Period of status feedback message (receiver of offered load returns
          messages to the sender with results of measured metrics). Value
          specified in {{units}}. The default value SHOULD be 50 {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="5" maxInclusive="250"/>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TimeoutNoTraffic" access="readWrite" status="deleted"
          version="2.14">
        <description>
          Timeout value. Value specified in {{units}}. The default value SHOULD
          be 5 {{units}}.

          {{deprecated|2.15|because it is superseded by
          {{param|TimeoutNoTestTraffic}} due to new precision requirement.
          Refer to {{bibref|TR-471}} for details}}

          {{obsoleted|2.17}}

          {{deleted|2.18}}
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="5" maxInclusive="30"/>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TimeoutNoTestTraffic" access="readWrite" version="2.15">
        <description>
          Timeout value. If no test traffic packets are received for {{param}}
          {{units}}, test will timeout. Value specified in {{units}}. The
          default value SHOULD be 1000 {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="500" maxInclusive="1000"/>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TimeoutNoStatusMessage" access="readWrite"
          version="2.15">
        <description>
          Timeout value. If no status message packets are received for
          {{param}} {{units}}, test will timeout. Value specified in {{units}}.
          The default value SHOULD be 1000 {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="500" maxInclusive="1000"/>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Tmax" access="readWrite" version="2.14">
        <description>
          Maximum waiting time for packets to arrive. Value specified in
          {{units}}. The default value SHOULD be 1000 {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="50" maxInclusive="3000"/>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TmaxRTT" access="readWrite" version="2.14">
        <description>
          Maximum Round Trip Time waiting time for packets to arrive. Value
          specified in {{units}}. The default value SHOULD be 3000 {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="50" maxInclusive="3000"/>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TimestampResolution" access="readWrite" version="2.14">
        <description>
          Indicates the requested precision of timestamp values. The test
          implementation will determine the actual precision to use based on
          the implemented resolution capabilities of the protocols used and
          this requested value. If the implemented resolution capabilities of
          the
          {{param|{{template|IP-DIAGNOSTICS-PARENT}}IPLayerCapSupportedMetrics}}
          protocols being used are able to provide the requested resolution,
          this resolution SHOULD be provided. Value specified in {{units}}. The
          default value SHOULD be 1 {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="1000"/>
            <units value="microseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SeqErrThresh" access="readWrite" version="2.15">
        <description>
          This parameter is only meaningful if {{param|TestType}} is
          {{enum|Search|TestType}}. Threshold for Loss or Reordering or
          Replication impairments measured (events where received packet
          sequence number did not increase by one). The default value SHOULD be
          10.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="100"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ReordDupIgnoreEnable" access="readWrite" version="2.15">
        <description>
          This parameter is only meaningful if {{param|TestType}} is
          {{enum|Search|TestType}}. When {{true}} (enabled) only Loss counts
          toward received packet sequence number errors, and Reordering and
          Duplication impairments are ignored. When {{false}} (disabled), Loss,
          Reordering and Duplication are all counted as sequence number errors.
          The default value SHOULD be {{true}} (enabled).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="LowerThresh" access="readWrite" version="2.14">
        <description>
          This parameter is only meaningful if {{param|TestType}} is
          {{enum|Search|TestType}}. The lower threshold on the range of Round
          Trip Time (RTT) variation. Value specified in {{units}}. The default
          value SHOULD be 30 {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="5" maxInclusive="250"/>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="UpperThresh" access="readWrite" version="2.14">
        <description>
          This parameter is only meaningful if {{param|TestType}} is
          {{enum|Search|TestType}}. The upper threshold on the range of Round
          Trip Time (RTT) variation. Value specified in {{units}}. The default
          value SHOULD be 90 {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="5" maxInclusive="250"/>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RetryThresh" access="readWrite" version="2.16">
        <description>
          The initial number of retries before activating “fast” sending rate
          increase mode. Different paths through the flow chart increase the
          sending rate, either fast or slow, or decrease the rate, etc. The
          algorithm doubles the threshold each time on subsequent activations.
          See Annex B of {{bibref|TR-471}} for details. The default value
          SHOULD be 5.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="3000"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="HighSpeedDelta" access="readWrite" version="2.14">
        <description>
          This parameter is only meaningful if {{param|TestType}} is
          {{enum|Search|TestType}}. The number of rows to move in a single
          adjustment when initially increasing offered load (to ramp up
          quickly). The default value SHOULD be 10.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="2"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RateAdjAlgorithm" access="readWrite" version="2.16">
        <description>
          Configurable choice of Load Rate Adjustment Algorithm. Refer to
          {{bibref|TR-471}} for details.
        </description>
        <syntax>
          <string>
            <enumeration value="B">
              <description>
                Use type "B" Load Rate Adjustment Algorithm. See section 5.2.1
                in {{bibref|TR-471}} for details.
              </description>
            </enumeration>
            <enumeration value="C">
              <description>
                Use type "C" Load Rate Adjustment Algorithm. See Annex B in
                {{bibref|TR-471}} for details.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="SlowAdjThresh" access="readWrite" version="2.14">
        <description>
          This parameter is only meaningful if {{param|TestType}} is
          {{enum|Search|TestType}}. Threshold on the measured number of
          consecutive status reports indicating loss and/or delay variation
          above {{param|UpperThresh}} (SlowAdjCount). The default value SHOULD
          be 3.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="2"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="HSpeedThresh" access="readWrite" version="2.14">
        <description>
          This parameter is only meaningful if {{param|TestType}} is
          {{enum|Search|TestType}}. Threshold for transition between low and
          high sending rate step sizes (such as 1Mbps and 100 Mbps). If
          {{param|JumboFramesPermitted}} is {{true}} this may result in use of
          jumbo frames. The default value SHOULD be 1 {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
            <units value="Gbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="StatusCode" access="readOnly" version="2.19"
          dmr:previousParameter="HSpeedThresh">
        <description>
          Status code of the test returned by the client, if applicable.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="IncrementalResultNumberOfEntries" access="readOnly"
          dmr:previousParameter="ReorderedRatioAtMax">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ModalResultNumberOfEntries" access="readOnly"
          version="2.15">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="StatusMessage" access="readOnly" version="2.19">
        <description>
          Status message of the test returned by the client, if applicable.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="BOMTime" access="readOnly" activeNotify="canDeny"
          version="2.14">
        <description>
          Beginning of transmission send/receive time in UTC, which MUST be
          specified to {{param|TimestampResolution}} precision. If multiple
          connections are used, then {{param}} is set to the earliest value
          across all connections. For example: 2008-04-09T15:01:05.123456Z
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="EOMTime" access="readOnly" activeNotify="canDeny"
          version="2.14">
        <description>
          End of transmission in UTC, which MUST be specified to
          {{param|TimestampResolution}} precision. If multiple connections are
          used, then {{param}} is set to the latest value across all
          connections. For example: 2008-04-09T15:01:05.123456Z
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="TmaxUsed" access="readOnly" version="2.14">
        <description>
          Configured value of {{param|Tmax}} used in the test. This value is
          expressed in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TestInterval" access="readOnly" version="2.14">
        <description>
          Duration of the test (either downlink or uplink). This value is
          expected to equal {{param|TestSubInterval}} *
          {{param|NumberTestSubIntervals}}. This value is expressed in
          {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MaxIPLayerCapacity" access="readOnly" version="2.14">
        <description>
          The maximum IP-Layer Capacity metric from among all
          {{param|IncrementalResult.{i}.IPLayerCapacity}} values measured
          between {{param|BOMTime}} and {{param|EOMTime}} across all
          connections for this test. This is calculated according to
          {{bibref|TR-471}} Equation 1. Result is expressed in {{units}} with 2
          digits beyond the decimal. 10^6^ bits/second = 1 {{units}}.
        </description>
        <syntax>
          <decimal>
            <units value="Mbps"/>
          </decimal>
        </syntax>
      </parameter>

      <parameter name="TimeOfMax" access="readOnly" version="2.14">
        <description>
          Time in UTC of end of the sub-interval when
          {{param|MaxIPLayerCapacity}} was measured. If the value of
          {{param|MaxIPLayerCapacity}} occurred in multiple sub-intervals, this
          MUST be the earliest of these sub-intervals. Value MUST be specified
          to {{param|TimestampResolution}} precision. For example:
          2008-04-09T15:01:05.123456Z
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="MaxETHCapacityNoFCS" access="readOnly" version="2.15">
        <description>
          Results of measurements using the Maximum IP-Layer Capacity metric,
          according to {{bibref|TR-471}} Equation 1, and calculations to
          estimate the capacity at Layer 2 with Preamble and Inter-frame gap,
          but no ETH Frame Check Sequence. Result is expressed in {{units}}
          with 2 digits beyond the decimal. 10^6^ bits/second = 1 {{units}}.
        </description>
        <syntax>
          <decimal>
            <units value="Mbps"/>
          </decimal>
        </syntax>
      </parameter>

      <parameter name="MaxETHCapacityWithFCS" access="readOnly" version="2.15">
        <description>
          Results of measurements using the Maximum IP-Layer Capacity metric,
          according to {{bibref|TR-471}} Equation 1, and calculations to
          estimate the capacity at Layer 2 with ETH Frame Check Sequence.
          Result is expressed in {{units}} with 2 digits beyond the decimal.
          10^6^ bits/second = 1 {{units}}.
        </description>
        <syntax>
          <decimal>
            <units value="Mbps"/>
          </decimal>
        </syntax>
      </parameter>

      <parameter name="MaxETHCapacityWithFCSVLAN" access="readOnly"
          version="2.15">
        <description>
          Results of measurements using the Maximum IP-Layer Capacity metric,
          according to {{bibref|TR-471}} Equation 1, and calculations to
          estimate the capacity at Layer 2 with ETH Frame Check Sequence and
          VLAN tag. Result is expressed in {{units}} with 2 digits beyond the
          decimal. 10^6^ bits/second = 1 {{units}}.
        </description>
        <syntax>
          <decimal>
            <units value="Mbps"/>
          </decimal>
        </syntax>
      </parameter>

      <parameter name="LossRatioAtMax" access="readOnly" version="2.14">
        <description>
          Ratio of lost packets to total packets during sub-interval of
          {{param|MaxIPLayerCapacity}}. This value is expressed as a decimal to
          9 decimal digits.
        </description>
        <syntax>
          <decimal/>
        </syntax>
      </parameter>

      <parameter name="RTTRangeAtMax" access="readOnly" version="2.14">
        <description>
          The range of Round Trip Time (RTT) during sub-interval of
          {{param|MaxIPLayerCapacity}}. This value is expressed in {{units}}.
          This value is expressed as a decimal to 9 decimal digits.
        </description>
        <syntax>
          <decimal>
            <units value="seconds"/>
          </decimal>
        </syntax>
      </parameter>

      <parameter name="PDVRangeAtMax" access="readOnly" version="2.14">
        <description>
          The range of Packet Delay Variation (PDV) during sub-interval of
          {{param|MaxIPLayerCapacity}}. This value is expressed in {{units}}.
          This value is expressed as a decimal to 9 decimal digits.
        </description>
        <syntax>
          <decimal>
            <units value="seconds"/>
          </decimal>
        </syntax>
      </parameter>

      <parameter name="MinOnewayDelayAtMax" access="readOnly" version="2.14">
        <description>
          The minimum one-way delay during the sub-interval of
          {{param|MaxIPLayerCapacity}}. The minimum one-way delay is calculated
          at the conclusion of the test and SHALL be calculated using the
          conditional distribution of all packets with a finite one-way delay
          value (undefined delays are excluded). This value is expressed in
          {{units}}. This value is expressed as a decimal to 9 decimal digits.
        </description>
        <syntax>
          <decimal>
            <units value="seconds"/>
          </decimal>
        </syntax>
      </parameter>

      <parameter name="ReorderedRatioAtMax" access="readOnly" version="2.14">
        <description>
          Ratio of reordered packets to total packets during the sub-interval
          of {{param|MaxIPLayerCapacity}}. This value is expressed as a decimal
          to 9 decimal digits.
        </description>
        <syntax>
          <decimal/>
        </syntax>
      </parameter>

      <parameter name="ReplicatedRatioAtMax" access="readOnly" version="2.15">
        <description>
          Ratio of replicated packets to total packets during the sub-interval
          of {{param|MaxIPLayerCapacity}}. This value is expressed as a decimal
          to 9 decimal digits.
        </description>
        <syntax>
          <decimal/>
        </syntax>
      </parameter>

      <parameter name="RTTMinAtMax" access="readOnly" version="2.19">
        <description>
          The value of minimum Round Trip Time (RTT) during the sub interval of
          {{param|MaxIPLayerCapacity}}. This value is expressed as a decimal to
          9 decimal digits.
        </description>
        <syntax>
          <decimal/>
        </syntax>
      </parameter>

      <parameter name="RTTMaxAtMax" access="readOnly" version="2.19">
        <description>
          The value of maximum Round Trip Time (RTT) during the sub interval of
          {{param|MaxIPLayerCapacity}}. This value is expressed as a decimal to
          9 decimal digits.
        </description>
        <syntax>
          <decimal/>
        </syntax>
      </parameter>

      <parameter name="InterfaceEthMbpsAtMax" access="readOnly" version="2.15">
        <description>
          The number of bits observed on the Interface during an IP-Layer
          Capacity test for time interval of duration {{param|TestSubInterval}}
          ending at {{param|IncrementalResult.{i}.TimeOfSubInterval}}
          corresponding to the {{param|MaxIPLayerCapacity}}, divided by the
          duration of {{param|TestSubInterval}}. Result is expressed in Mbps
          with 2 digits beyond the decimal. 10^6^ bits/second = 1 {{units}}.
          This is primarily a diagnostic measurement. Measurement direction
          follows the {{param|Role}}.
        </description>
        <syntax>
          <decimal>
            <units value="Mbps"/>
          </decimal>
        </syntax>
      </parameter>

      <parameter name="IPLayerCapacitySummary" access="readOnly"
          version="2.15">
        <description>
          The IP-Layer Capacity metric from among all
          {{param|IncrementalResult.{i}.IPLayerCapacity}} values measured
          between {{param|BOMTime}} and {{param|EOMTime}} across all
          connections for this test. This is calculated according to
          {{bibref|TR-471}} Equation 1. Result is expressed in {{units}} with 2
          digits beyond the decimal. 10^6^ bits/second = 1 {{units}}.
        </description>
        <syntax>
          <decimal>
            <units value="Mbps"/>
          </decimal>
        </syntax>
      </parameter>

      <parameter name="LossRatioSummary" access="readOnly" version="2.15">
        <description>
          Ratio of lost packets to total packets during the complete
          {{param|TestInterval}}. This value is expressed as a decimal to 9
          decimal digits.
        </description>
        <syntax>
          <decimal/>
        </syntax>
      </parameter>

      <parameter name="RTTRangeSummary" access="readOnly" version="2.15">
        <description>
          The range of measured Round Trip Time (RTT) during the complete
          {{param|TestInterval}}. This value is expressed in {{units}}, as a
          decimal to 9 decimal digits.
        </description>
        <syntax>
          <decimal>
            <units value="seconds"/>
          </decimal>
        </syntax>
      </parameter>

      <parameter name="PDVRangeSummary" access="readOnly" version="2.15">
        <description>
          The range of Packet Delay Variation (PDV) during the complete
          {{param|TestInterval}}. This value is expressed in {{units}}, as a
          decimal to 9 decimal digits.
        </description>
        <syntax>
          <decimal>
            <units value="seconds"/>
          </decimal>
        </syntax>
      </parameter>

      <parameter name="MinOnewayDelaySummary" access="readOnly" version="2.15">
        <description>
          The minimum one-way delay during the complete {{param|TestInterval}}.
          This value is expressed in {{units}}, as a decimal to 9 decimal
          digits.
        </description>
        <syntax>
          <decimal>
            <units value="seconds"/>
          </decimal>
        </syntax>
      </parameter>

      <parameter name="MinRTTSummary" access="readOnly" version="2.15">
        <description>
          The minimum RTT during the complete {{param|TestInterval}}. This
          value is expressed in {{units}}, as a decimal to 9 decimal digits.
        </description>
        <syntax>
          <decimal>
            <units value="seconds"/>
          </decimal>
        </syntax>
      </parameter>

      <parameter name="ReorderedRatioSummary" access="readOnly" version="2.15">
        <description>
          Ratio of reordered packets to total packets during the complete
          {{param|TestInterval}}. This value is expressed as a decimal to 9
          decimal digits.
        </description>
        <syntax>
          <decimal/>
        </syntax>
      </parameter>

      <parameter name="ReplicatedRatioSummary" access="readOnly"
          version="2.15">
        <description>
          Ratio of replicated packets to total packets during the complete
          {{param|TestInterval}}. This value is expressed as a decimal to 9
          decimal digits.
        </description>
        <syntax>
          <decimal/>
        </syntax>
      </parameter>

      <parameter name="InterfaceEthMbpsSummary" access="readOnly"
          version="2.15">
        <description>
          The number of bits observed on the {{param|Interface}} during an
          IP-Layer Capacity test for the entire time interval of duration
          {{param|TestInterval}}, divided by the duration of
          {{param|TestInterval}}. Result is expressed in {{units}} with 2
          digits beyond the decimal. 10^6^ bits/second = 1 {{units}}. This is
          primarily a diagnostic measurement. Measurement direction follows the
          {{param|Role}}.
        </description>
        <syntax>
          <decimal>
            <units value="Mbps"/>
          </decimal>
        </syntax>
      </parameter>

      <parameter name="TmaxRTTUsed" access="readOnly" version="2.14">
        <description>
          Configured value of {{param|TmaxRTT}} used in the test. This value is
          expressed in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TimestampResolutionUsed" access="readOnly"
          version="2.14">
        <description>
          Indicates the timestamp resolution of reported results. This is a
          function of the measurement protocol, and it is usually determined
          once the protocol chosen. Value specified in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="microseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ActiveFlows" access="readOnly" version="2.17">
        <description>
          Number of flows set-up and used for a test.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.IP.Diagnostics.IPLayerCapacityMetrics.IPLayerCapacityAuthCode.{i}."
        access="readWrite"
        numEntriesParameter="IPLayerCapacityAuthCodeNumberOfEntries"
        maxEntries="256" version="2.19">
      <description>
        Authentication Code table containing list of keys to be used by the
        client when connecting to the server.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="AuthenticationKey" access="readWrite" version="2.19">
        <description>
          A passphrase that is used by the client to authenticate with the
          server.
        </description>
        <syntax secured="true">
          <string/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.IP.Diagnostics.IPLayerCapacityMetrics.ModalResult.{i}."
        access="readOnly" numEntriesParameter="ModalResultNumberOfEntries"
        minEntries="1" maxEntries="unbounded" dmr:noUniqueKeys="true"
        version="2.15">
      <description>
        Modal test results. Only returned when bimodal test mode is enabled
        ({{param|#.NumberFirstModeTestSubIntervals}} &gt;=1). If returned, it
        MUST contain 1 or more entries, with instance number 1 corresponding to
        the second mode and instance number 2 corresponding to the third mode.

        Results for the Maximum in each mode/instance are calculated based on
        {{object|#.IncrementalResult.{i}.}} data within the boundary of its
        corresponding mode.
      </description>

      <parameter name="MaxIPLayerCapacity" access="readOnly">
        <description>
          The maximum IP-Layer Capacity metric from among all
          {{param|#.IncrementalResult.{i}.IPLayerCapacity}} values within
          corresponding mode across all connections for this test. This is
          calculated according to {{bibref|TR-471}} Equation 1. Result is
          expressed in {{units}} with 2 digits beyond the decimal. 10^6^
          bits/second = 1 {{units}}.
        </description>
        <syntax>
          <decimal>
            <units value="Mbps"/>
          </decimal>
        </syntax>
      </parameter>

      <parameter name="TimeOfMax" access="readOnly">
        <description>
          Time in UTC of end of the sub-interval when
          {{param|MaxIPLayerCapacity}} was measured. If the value of
          {{param|MaxIPLayerCapacity}} occurred in multiple sub-intervals, this
          MUST be the earliest of these sub-intervals. Value MUST be specified
          to {{param|#.TimestampResolution}} precision. For example:
          2008-04-09T15:01:05.123456Z
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="MaxETHCapacityNoFCS" access="readOnly">
        <description>
          Results of measurements using the Maximum IP-Layer Capacity metric,
          according to {{bibref|TR-471}} Equation 1, and calculations to
          estimate the capacity at Layer 2 with Preamble and Inter-frame gap,
          but no ETH Frame Check Sequence. Result is expressed in {{units}}
          with 2 digits beyond the decimal. 10^6^ bits/second = 1 {{units}}.
        </description>
        <syntax>
          <decimal>
            <units value="Mbps"/>
          </decimal>
        </syntax>
      </parameter>

      <parameter name="MaxETHCapacityWithFCS" access="readOnly">
        <description>
          Results of measurements using the Maximum IP-Layer Capacity metric,
          according to {{bibref|TR-471}} Equation 1, and calculations to
          estimate the capacity at Layer 2 with ETH Frame Check Sequence.
          Result is expressed in {{units}} with 2 digits beyond the decimal.
          10^6^ bits/second = 1 {{units}}.
        </description>
        <syntax>
          <decimal>
            <units value="Mbps"/>
          </decimal>
        </syntax>
      </parameter>

      <parameter name="MaxETHCapacityWithFCSVLAN" access="readOnly">
        <description>
          Results of measurements using the Maximum IP-Layer Capacity metric,
          according to {{bibref|TR-471}} Equation 1, and calculations to
          estimate the capacity at Layer 2 with ETH Frame Check Sequence and
          VLAN tag. Result is expressed in {{units}} with 2 digits beyond the
          decimal. 10^6^ bits/second = 1 {{units}}.
        </description>
        <syntax>
          <decimal>
            <units value="Mbps"/>
          </decimal>
        </syntax>
      </parameter>

      <parameter name="LossRatioAtMax" access="readOnly">
        <description>
          Ratio of lost packets to total packets during sub-interval of
          {{param|MaxIPLayerCapacity}}. This value is expressed as a decimal to
          9 decimal digits.
        </description>
        <syntax>
          <decimal/>
        </syntax>
      </parameter>

      <parameter name="RTTRangeAtMax" access="readOnly">
        <description>
          The range of Round Trip Time (RTT) during sub-interval of
          {{param|MaxIPLayerCapacity}}. This value is expressed in {{units}}.
          This value is expressed as a decimal to 9 decimal digits.
        </description>
        <syntax>
          <decimal>
            <units value="seconds"/>
          </decimal>
        </syntax>
      </parameter>

      <parameter name="PDVRangeAtMax" access="readOnly">
        <description>
          The range of Packet Delay Variation (PDV) during sub-interval of
          {{param|MaxIPLayerCapacity}}. This value is expressed in {{units}}.
          This value is expressed as a decimal to 9 decimal digits.
        </description>
        <syntax>
          <decimal>
            <units value="seconds"/>
          </decimal>
        </syntax>
      </parameter>

      <parameter name="MinOnewayDelayAtMax" access="readOnly">
        <description>
          The minimum one-way delay during the sub-interval of
          {{param|MaxIPLayerCapacity}}. The minimum one-way delay is calculated
          at the conclusion of the test and SHALL be calculated using the
          conditional distribution of all packets with a finite one-way delay
          value (undefined delays are excluded). This value is expressed in
          {{units}}. This value is expressed as a decimal to 9 decimal digits.
        </description>
        <syntax>
          <decimal>
            <units value="seconds"/>
          </decimal>
        </syntax>
      </parameter>

      <parameter name="ReorderedRatioAtMax" access="readOnly">
        <description>
          Ratio of reordered packets to total packets during the sub-interval
          of {{param|MaxIPLayerCapacity}}. This value is expressed as a decimal
          to 9 decimal digits.
        </description>
        <syntax>
          <decimal/>
        </syntax>
      </parameter>

      <parameter name="ReplicatedRatioAtMax" access="readOnly">
        <description>
          Ratio of replicated packets to total packets during the sub-interval
          of {{param|MaxIPLayerCapacity}}. This value is expressed as a decimal
          to 9 decimal digits.
        </description>
        <syntax>
          <decimal/>
        </syntax>
      </parameter>

      <parameter name="InterfaceEthMbpsAtMax" access="readOnly" version="2.15">
        <description>
          The number of bits observed on the {{param|#.Interface}} during an
          IP-Layer Capacity test for time interval of duration
          {{param|#.TestSubInterval}} ending at
          {{param|#.IncrementalResult.{i}.TimeOfSubInterval}} corresponding to
          the {{param|MaxIPLayerCapacity}}, divided by the duration of
          {{param|#.TestSubInterval}}. Result is expressed in Mbps with 2
          digits beyond the decimal. 10^6^ bits/second = 1 {{units}}. This is
          primarily a diagnostic measurement. Measurement direction follows the
          {{param|#.Role}}.
        </description>
        <syntax>
          <decimal>
            <units value="Mbps"/>
          </decimal>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.IP.Diagnostics.IPLayerCapacityMetrics.IncrementalResult.{i}."
        access="readOnly"
        numEntriesParameter="IncrementalResultNumberOfEntries" minEntries="0"
        maxEntries="unbounded" dmr:noUniqueKeys="true" version="2.14">
      <description>
        Results for time segmented tests (tests where
        {{param|#.NumberTestSubIntervals}} &gt; 1). This data is calculated
        across all connections in the test. A new object is created every
        {{param|#.TestSubInterval}} after that interval has completed. Instance
        numbers MUST start at 1 and sequentially increment as new instances are
        created. All instances are removed when new test is started or results
        are otherwise cleared.
      </description>

      <parameter name="IPLayerCapacity" access="readOnly">
        <description>
          Results of measurements using the maximum IP-Layer Capacity metric
          calculation for a single interval from {{bibref|TR-471}} Equation 1,
          for time interval of duration {{param|#.TestSubInterval}} ending at
          {{param|TimeOfSubInterval}} across all connections for this test.
          Result is expressed in {{units}} with 2 digits beyond the decimal.
          10^6^ bits/second = 1 {{units}}.
        </description>
        <syntax>
          <decimal>
            <units value="Mbps"/>
          </decimal>
        </syntax>
      </parameter>

      <parameter name="TimeOfSubInterval" access="readOnly"
          activeNotify="canDeny">
        <description>
          Time in UTC of end of sub-interval when {{param|IPLayerCapacity}} was
          measured. Value MUST be specified to {{param|#.TimestampResolution}}
          precision. For example: 2008-04-09T15:01:05.123456Z
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="LossRatio" access="readOnly">
        <description>
          Ratio of lost packets to total packets, for time interval of duration
          {{param|#.TestSubInterval}} ending at {{param|TimeOfSubInterval}}
          across all connections for this test. This value is expressed as a
          decimal to 9 decimal digits.
        </description>
        <syntax>
          <decimal/>
        </syntax>
      </parameter>

      <parameter name="RTTRange" access="readOnly">
        <description>
          The range of Round Trip Time (RTT), for time interval of duration
          {{param|#.TestSubInterval}} ending at {{param|TimeOfSubInterval}}
          across all connections for this test. See {{bibref|TR-471}} for
          description of how value is calculated. This value is expressed in
          {{units}}. This value is expressed as a decimal to 9 decimal digits.
        </description>
        <syntax>
          <decimal>
            <units value="seconds"/>
          </decimal>
        </syntax>
      </parameter>

      <parameter name="PDVRange" access="readOnly">
        <description>
          The range of Packet Delay Variation (PDV), for time interval of
          duration {{param|#.TestSubInterval}} ending at
          {{param|TimeOfSubInterval}} across all connections for this test. See
          {{bibref|TR-471}} for description of how value is calculated. This
          value is expressed in {{units}}. This value is expressed as a decimal
          to 9 decimal digits.
        </description>
        <syntax>
          <decimal>
            <units value="seconds"/>
          </decimal>
        </syntax>
      </parameter>

      <parameter name="MinOnewayDelay" access="readOnly">
        <description>
          The minimum one-way delay, for time interval of duration
          {{param|#.TestSubInterval}} ending at {{param|TimeOfSubInterval}}
          across all connections for this test. The minimum one-way delay is
          calculated at the conclusion of the test and SHALL be calculated
          using the conditional distribution of all packets with a finite
          one-way delay value (undefined delays are excluded). This value is
          expressed in {{units}}. This value is expressed as a decimal to 9
          decimal digits.
        </description>
        <syntax>
          <decimal>
            <units value="seconds"/>
          </decimal>
        </syntax>
      </parameter>

      <parameter name="ReorderedRatio" access="readOnly">
        <description>
          Ratio of reordered packets to total packets, for time interval of
          duration {{param|#.TestSubInterval}} ending at
          {{param|TimeOfSubInterval}} across all connections for this test.
          This value is expressed as a decimal to 9 decimal digits.
        </description>
        <syntax>
          <decimal/>
        </syntax>
      </parameter>

      <parameter name="ReplicatedRatio" access="readOnly" version="2.15">
        <description>
          Ratio of replicated packets to total packets, for time interval of
          duration {{param|#.TestSubInterval}} ending at
          {{param|TimeOfSubInterval}} across all connections for this test.
          This value is expressed as a decimal to 9 decimal digits.
        </description>
        <syntax>
          <decimal/>
        </syntax>
      </parameter>

      <parameter name="InterfaceEthMbps" access="readOnly" version="2.15">
        <description>
          The number of bits observed on the {{param|#.Interface}} during an
          IP-Layer Capacity test for time interval of duration
          {{param|#.TestSubInterval}} ending at {{param|TimeOfSubInterval}},
          divided by the duration of {{param|#.TestSubInterval}}. Result is
          expressed in Mbps with 2 digits beyond the decimal. 10^6^ bits/second
          = 1 {{units}}. This is primarily a diagnostic measurement.
          Measurement direction follows the {{param|#.Role}}.
        </description>
        <syntax>
          <decimal>
            <units value="Mbps"/>
          </decimal>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IP.Diagnostics.ServerSelectionDiagnostics."
        access="readOnly" minEntries="1" maxEntries="1" version="2.9">
      <description>
        This object provides access to a diagnostics test that performs either
        an ICMP Ping or UDP Echo ping against multiple hosts determining which
        one has the smallest average response time. There MUST be a ping
        response to the transmitted ping, or timeout, before the next ping is
        sent out.
      </description>

      <parameter name="DiagnosticsState" access="readWrite"
          activeNotify="canDeny">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="DiagnosticsState">
            <enumeration value="None" access="readOnly"/>
            <enumeration value="Requested"/>
            <enumeration value="Canceled" optional="true"/>
            <enumeration value="Complete" access="readOnly"/>
            <enumeration value="Completed" access="readOnly" status="deleted">
              <description>
                {{deprecated|2.13|because it's a typo for {{enum|Complete}}}}

                {{obsoleted|2.16}}

                {{deleted|2.17}}
              </description>
            </enumeration>
            <enumeration value="Error_CannotResolveHostName" access="readOnly"/>
            <enumeration value="Error_Internal" access="readOnly"/>
            <enumeration value="Error_Other" access="readOnly"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite" version="2.9">
        <description>
          {{reference|the IP-layer interface over which the test is to be
          performed}} Example: Device.IP.Interface.1

          {{template|INTERFACE-ROUTING}}
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent=".IP.Interface."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ProtocolVersion" access="readWrite" version="2.9">
        <description>
          Indicates the IP protocol version to be used.
        </description>
        <syntax>
          <string>
            <enumeration value="Any">
              <description>
                Use either IPv4 or IPv6 depending on the system preference.
              </description>
            </enumeration>
            <enumeration value="IPv4">
              <description>Use IPv4 for the requests.</description>
            </enumeration>
            <enumeration value="IPv6">
              <description>Use IPv6 for the requests.</description>
            </enumeration>
          </string>
          <default type="factory" value="Any"/>
        </syntax>
      </parameter>

      <parameter name="Protocol" access="readWrite" version="2.9">
        <description>
          The protocol over which the test is to be performed.
        </description>
        <syntax>
          <string>
            <enumeration value="ICMP"/>
            <enumeration value="UDP Echo"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="HostList" access="readWrite" version="2.9">
        <description>
          Each entry is a Host name or address of a host to ping.
        </description>
        <syntax>
          <list maxItems="10">
            <size/>
          </list>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="NumberOfRepetitions" access="readWrite" version="2.9">
        <description>
          Number of repetitions of the ping test to perform for each
          {{param|HostList}} entry before reporting the results.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Timeout" access="readWrite" version="2.9">
        <description>
          Timeout in {{units}} for each iteration of the ping test where the
          total number of iterations is the value of
          {{param|NumberOfRepetitions}} times the number of entities in the
          {{param|HostList}} Parameter.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="FastestHost" access="readOnly" activeNotify="canDeny"
          version="2.9">
        <description>
          Result parameter indicating the Host (one of the items within the
          {{param|HostList}} Parameter) with the smallest average response
          time.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="MinimumResponseTime" access="readOnly"
          activeNotify="canDeny" version="2.9">
        <description>
          Result parameter indicating the minimum response time in {{units}}
          over all repetitions with successful responses of the most recent
          ping test for the Host identified in {{param|FastestHost}}. Success
          is defined by the underlying protocol used. If there were no
          successful responses across all Hosts, this value MUST be zero.
        </description>
        <syntax>
          <unsignedInt>
            <units value="microseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="AverageResponseTime" access="readOnly"
          activeNotify="canDeny" version="2.9">
        <description>
          Result parameter indicating the average response time in {{units}}
          over all repetitions with successful responses of the most recent
          ping test for the Host identified in {{param|FastestHost}}. Success
          is defined by the underlying protocol used. If there were no
          successful responses across all Hosts, this value MUST be zero.
        </description>
        <syntax>
          <unsignedInt>
            <units value="microseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MaximumResponseTime" access="readOnly" version="2.9">
        <description>
          Result parameter indicating the maximum response time in {{units}}
          over all repetitions with successful responses of the most recent
          ping test for the Host identified in {{param|FastestHost}}. Success
          is defined by the underlying protocol used. If there were no
          successful responses across all Hosts, this value MUST be zero.
        </description>
        <syntax>
          <unsignedInt>
            <units value="microseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="IPAddressUsed" access="readOnly" version="2.9">
        <description>
          Indicates which IP address was used to send the request to the host
          identified in {{param|FastestHost}}.
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.LLDP." access="readOnly" minEntries="1"
        maxEntries="1" version="2.8">
      <description>
        This object contains Link Layer Discovery Protocol (LLDP)
        {{bibref|802.1AB-2009}} related objects and parameters.
      </description>
    </object>

    <object name="Device.LLDP.Discovery." access="readOnly" minEntries="1"
        maxEntries="1" version="2.8">
      <description>
        This object is used for managing the discovery of LLDP devices.

        The CPE MAY, but need not, retain some or all of the information in
        this object across reboot.
      </description>

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

    <object name="Device.LLDP.Discovery.Device.{i}." access="readOnly"
        numEntriesParameter="DeviceNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.8">
      <description>
        This table contains information about discovered LLDP devices.
      </description>
      <uniqueKey functional="true">
        <parameter ref="ChassisIDSubtype"/>
        <parameter ref="ChassisID"/>
      </uniqueKey>

      <parameter name="Interface" access="readOnly">
        <description>
          {{reference|the interface via which the LLDP device was discovered}}
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ChassisIDSubtype" access="readOnly">
        <description>
          The chassis identifier subtype, which is included in the value of the
          ''LLDPDU's'' Chassis ID TLV (TLV Type = 1). The following subtype
          values are defined:

          * ''0'' (Reserved)

          * ''1'' (Chassis component)

          * ''2'' (Interface alias)

          * ''3'' (Port component)

          * ''4'' (MAC address)

          * ''5'' (Network address)

          * ''6'' (Interface name)

          * ''7'' (Locally assigned)

          * ''8-255'' (Reserved)

          Note: It is assumed that this integer might be used for HTIP
          (Home-network Topology Identifying Protocol) {{bibref|JJ-300.00}} and
          {{bibref|G.9973}}. In this case, the Chassis ID is set to the
          representative MAC address (chassis ID subtype = 4) for
          ''HTIP-Ethernet Bridge''.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ChassisID" access="readOnly">
        <description>
          The chassis identifier, which is included in the value of the
          ''LLDPDU's'' Chassis ID TLV (TLV Type = 1).

          Note: It is assumed that this string might be used for HTIP
          (Home-network Topology Identifying Protocol) {{bibref|JJ-300.00}} and
          {{bibref|G.9973}}. In this case, the Chassis ID is set to the
          representative MAC address. If ''LLDPDU''s are sent and received from
          two or more LLDP agents of the same ''HTIP-Ethernet Bridge'', this
          value is same in all ''LLDPDU''s.
        </description>
        <syntax>
          <string>
            <size minLength="1" maxLength="255"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Host" access="readOnly">
        <description>
          {{list}}Indicates the full path names of all Host table entries,
          whether active or inactive, that correspond to this device.

          When the entries are added to or removed from the Host tables, the
          value of this parameter MUST be updated accordingly.
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="###.Hosts.Host."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

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

    <object name="Device.LLDP.Discovery.Device.{i}.Port.{i}."
        access="readOnly" numEntriesParameter="PortNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.8">
      <description>
        This table contains information about ports on discovered LLDP devices.
      </description>
      <uniqueKey functional="true">
        <parameter ref="PortIDSubtype"/>
        <parameter ref="PortID"/>
      </uniqueKey>

      <parameter name="PortIDSubtype" access="readOnly">
        <description>
          The port identifier subtype, which is included in the value of the
          ''LLDPDU's'' Port ID TLV (TLV Type = 2). The following subtype values
          are defined:

          * ''0'' (Reserved)

          * ''1'' (Interface alias)

          * ''2'' (Port component)

          * ''3'' (MAC address)

          * ''4'' (Network address)

          * ''5'' (Interface name)

          * ''6'' (Agent circuit ID)

          * ''7'' (Locally assigned)

          * ''8-255'' (Reserved)
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="PortID" access="readOnly">
        <description>
          The port identifier, which is included in the value of the
          ''LLDPDU's'' Port ID TLV (TLV Type = 2).
        </description>
        <syntax>
          <string>
            <size minLength="1" maxLength="255"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="TTL" access="readOnly">
        <description>
          The ''LLDPDU'' lifetime (in {{units}}), which is the value of the
          latest TimeToLive TLV (TLV Type = 3).

          If this value is 0, it means that the LLDP agent or the MAC service
          function of the port is stopped.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="65535"/>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="PortDescription" access="readOnly">
        <description>
          The port description, which is the value of the latest Port
          Description TLV (TLV Type = 4), or {{empty}} if no Port Description
          TLV has been received.

          Note: It is assumed that this string might be used for HTIP
          (Home-network Topology Identifying Protocol) {{bibref|JJ-300.00}} and
          {{bibref|G.9973}}. In this case, the parameter value is likely to be
          one of the names defined in {{bibref|JJ-300.00|Appendix A (''List of
          Interface Standard Names'')}}.
        </description>
        <syntax>
          <string>
            <size maxLength="255"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="MACAddressList" access="readOnly">
        <description>
          The device's MAC addresses, which are included in the value of the
          ''LLDPDU's'' Organizationally Specific TLV (TLV Type = 127), or
          {{empty}} if no list of MAC addresses has been received.

          The parameter is relevant when there is a LLDP device which has a MAC
          copy function and has two or more MAC addresses.

          Note: It is assumed that it might be used for HTIP (Home-network
          Topology Identifying Protocol) {{bibref|JJ-300.00}} and
          {{bibref|G.9973}}. In this case, the {{bibref|OUI}} in the third
          octet is E0271A (''TTC-OUI'') and the organizationally defined
          subtype in the sixth octet is 3 (''MAC Address List'').
        </description>
        <syntax>
          <list maxItems="255">
            <size/>
          </list>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

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

    <object name="Device.LLDP.Discovery.Device.{i}.Port.{i}.LinkInformation."
        access="readOnly" minEntries="1" maxEntries="1" version="2.8">
      <description>
        The port's link information, which is included in the value of the
        ''LLDPDU's'' Organizationally Specific TLV (TLV Type = 127).

        Note: It is assumed that this object might be used for HTIP
        (Home-network Topology Identifying Protocol) {{bibref|JJ-300.00}} and
        {{bibref|G.9973}}. In this case, the {{bibref|OUI}} in the third octet
        is E0271A (''TTC-OUI'') and the organizationally defined subtype in the
        sixth octet is 2 (''Link Information'').
      </description>

      <parameter name="InterfaceType" access="readOnly">
        <description>
          The port's interface type, or 0 if no interface type has been
          received.

          Note: It is assumed that it might be used for HTIP (Home-network
          Topology Identifying Protocol) {{bibref|JJ-300.00}} and
          {{bibref|G.9973}}. In this case, it's an IANA interface type
          {{bibref|IANAifType}}.

          For example, IANAifType defines the following interface types for
          wired line (UTP cable), wireless line, power line, and coaxial cable:

          * ''6'' (Wired line)

          * ''71'' (Wireless)

          * ''174'' (PLC)

          * ''236'' (Coaxial cable)
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MACForwardingTable" access="readOnly">
        <description>
          The port's MAC forwarding table, or the value is {{empty}} if no
          forwarding table was supplied.
        </description>
        <syntax>
          <list maxItems="255">
            <size/>
          </list>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.LLDP.Discovery.Device.{i}.DeviceInformation."
        access="readOnly" minEntries="1" maxEntries="1" version="2.8">
      <description>
        The device information, which is included in the value of the
        ''LLDPDU's'' Organizationally Specific TLV (TLV Type = 127).

        Note: It is assumed that this object might be used for HTIP
        (Home-network Topology Identifying Protocol) {{bibref|JJ-300.00}} and
        {{bibref|G.9973}}. In this case, this table contains the
        Organizationally Specific TLV (TLV Type = 127) of ''LLDPDU'', in which
        the {{bibref|OUI}} in the third octet is E0271A (''TTC-OUI'') and the
        organizationally defined subtype in the sixth octet is 1 (''Device
        Information'').
      </description>

      <parameter name="DeviceCategory" access="readOnly">
        <description>
          Each list item indicates a device category (e.g."AV_TV" and
          "AV_Recorder"), or the value is {{empty}} if no device categories
          were provided.

          Note: It is assumed that this list might be used for HTIP
          (Home-network Topology Identifying Protocol) {{bibref|JJ-300.00}} and
          {{bibref|G.9973}}. Standard HTIP device categories are defined in
          {{bibref|JJ-300.01}}. In this case, the maximum length of the list is
          127 and of each item is 31, and any non-HTIP device categories SHOULD
          NOT conflict with standard HTIP device categories.
        </description>
        <syntax>
          <list/>
          <string/>
        </syntax>
      </parameter>

      <parameter name="ManufacturerOUI" access="readOnly">
        <description>
          The manufacturer OUI, which is included in the value of the
          ''LLDPDU's'' Organizationally Specific TLV (TLV Type = 127), or
          {{empty}} if no manufacturer OUI was provided.

          {{pattern}}
        </description>
        <syntax>
          <string>
            <size minLength="0" maxLength="6"/>
            <pattern value="">
              <description>{{empty}}</description>
            </pattern>
            <pattern value="[0-9A-F]{6}"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ModelName" access="readOnly">
        <description>
          The model name, which is included in the value of the ''LLDPDU's''
          Organizationally Specific TLV (TLV Type = 127), or {{empty}} if no
          model name was provided.

          Note: It is assumed that this string might be used for HTIP
          (Home-network Topology Identifying Protocol) {{bibref|JJ-300.00}} and
          {{bibref|G.9973}}.
        </description>
        <syntax>
          <string>
            <size maxLength="31"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ModelNumber" access="readOnly">
        <description>
          The model number, which is included in the value of the ''LLDPDU's''
          Organizationally Specific TLV (TLV Type = 127), or {{empty}} if no
          model number was provided.

          Note: It is assumed that this string might be used for HTIP
          (Home-network Topology Identifying Protocol) {{bibref|JJ-300.00}} and
          {{bibref|G.9973}}.
        </description>
        <syntax>
          <string>
            <size maxLength="31"/>
          </string>
        </syntax>
      </parameter>

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

    <object
        name="Device.LLDP.Discovery.Device.{i}.DeviceInformation.VendorSpecific.{i}."
        access="readOnly" numEntriesParameter="VendorSpecificNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.8">
      <description>
        The vendor-specific device information, which is included in the value
        of the ''LLDPDU's'' Organizationally Specific TLV (TLV Type = 127).

        {{keys}}

        Note: It is assumed that this object might be used for HTIP
        (Home-network Topology Identifying Protocol) {{bibref|JJ-300.00}} and
        {{bibref|G.9973}}. In this case, this table contains the
        Organizationally Specific TLV (TLV Type = 127) of ''LLDPDU'', in which
        the {{bibref|OUI}} in the third octet is E0271A (''TTC-OUI''), the
        organizationally defined subtype in the sixth octet is 1 (''Device
        Information''), and the device information ID in the seventh octet is
        255 (''Vendor-specific extension field'').
      </description>
      <uniqueKey functional="true">
        <parameter ref="OrganizationCode"/>
        <parameter ref="InformationType"/>
      </uniqueKey>

      <parameter name="OrganizationCode" access="readOnly">
        <description>
          The vendor-specific organization code, which is included in the value
          of the ''LLDPDU's'' Organizationally Specific TLV (TLV Type = 127).
        </description>
        <syntax>
          <string>
            <size minLength="6" maxLength="6"/>
            <pattern value="[0-9A-F]{6}"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="InformationType" access="readOnly">
        <description>
          The vendor-specific device information type, which is included in the
          value of the ''LLDPDU's'' Organizationally Specific TLV (TLV Type =
          127).
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Information" access="readOnly">
        <description>
          The vendor-specific device information, which is included in the
          value of the ''LLDPDU's'' Organizationally Specific TLV (TLV Type =
          127).
        </description>
        <syntax>
          <string>
            <size maxLength="248"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IPsec." access="readOnly" minEntries="1"
        maxEntries="1" version="2.5">
      <description>
        IPsec {{bibref|RFC4301}} object that supports the configuration of
        Encapsulating Security Payload (ESP) {{bibref|RFC4303}} and
        Authentication Header (AH) {{bibref|RFC4302}} in tunnel mode
        {{bibref|RFC4301|Section 3.2}}.

        Use of IKEv2 {{bibref|RFC5996}} is assumed. The IPsec object does not
        currently support static configuration of tunnels and child Security
        Associations (SAs).

        See the IPsec Theory of Operation {{bibref|TR-181i2|Appendix IX}} for a
        description of the working of this IPsec data model.
      </description>

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

      <parameter name="Status" access="readOnly">
        <description>
          IPsec status. {{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="AHSupported" access="readOnly">
        <description>
          Indicates whether or not Authentication Header (AH)
          {{bibref|RFC4302}} is supported.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="IKEv2SupportedEncryptionAlgorithms" access="readOnly">
        <description>
          Supported IKEv2 encryption algorithms {{bibref|IKEv2-params|Transform
          Type 1}}. {{enum}}

          Note that these are the names from the above reference, transformed
          as follows:

          * Leading ''ENCR_'' (when present) discarded because they are all
            encryption algorithms so it's not needed.

          * Underscores changed to hyphens to preserve names used in existing
            data models (and because of inconsistent conventions).

          * Phrases collapsed where unambiguous, e.g. "with a(n) NN octet ICV"
            -&gt; "-NN".

          As additional algorithms are added to the above reference, this data
          model will be extended according to the above conventions.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="DES"/>
            <enumeration value="3DES"/>
            <enumeration value="RC5"/>
            <enumeration value="IDEA"/>
            <enumeration value="CAST"/>
            <enumeration value="BLOWFISH"/>
            <enumeration value="3IDEA"/>
            <enumeration value="AES-CBC"/>
            <enumeration value="AES-CTR"/>
            <enumeration value="AES-CCM-8"/>
            <enumeration value="AES-CCM-12"/>
            <enumeration value="AES-CCM-16"/>
            <enumeration value="AES-GCM-8"/>
            <enumeration value="AES-GCM-12"/>
            <enumeration value="AES-GCM-16"/>
            <enumeration value="CAMELLIA-CBC"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ESPSupportedEncryptionAlgorithms" access="readOnly">
        <description>
          Supported ESP encryption algorithms {{bibref|IKEv2-params|Transform
          Type 1}} {{bibref|RFC4835|Section 3.1.1}}. {{enum}}

          Note that these are the names from the above reference, transformed
          as follows:

          * Leading ''ENCR_'' (when present) discarded because they are all
            encryption algorithms so it's not needed.

          * Underscores changed to hyphens to preserve names used in existing
            data models (and because of inconsistent conventions).

          * Phrases collapsed where unambiguous, e.g. "with a(n) NN octet ICV"
            -&gt; "-NN".

          * Some algorithms with apparently rather specialised application are
            omitted, e.g. ''ENCR_NULL_AUTH_AES_GMAC''.

          As additional algorithms are added to the above reference, this data
          model will be extended according to the above conventions.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="NULL"/>
            <enumeration value="DES-IV64"/>
            <enumeration value="DES"/>
            <enumeration value="3DES"/>
            <enumeration value="RC5"/>
            <enumeration value="IDEA"/>
            <enumeration value="CAST"/>
            <enumeration value="BLOWFISH"/>
            <enumeration value="3IDEA"/>
            <enumeration value="DES-IV32"/>
            <enumeration value="AES-CBC"/>
            <enumeration value="AES-CTR"/>
            <enumeration value="AES-CCM-8"/>
            <enumeration value="AES-CCM-12"/>
            <enumeration value="AES-CCM-16"/>
            <enumeration value="AES-GCM-8"/>
            <enumeration value="AES-GCM-12"/>
            <enumeration value="AES-GCM-16"/>
            <enumeration value="NULL-AUTH-AES-GMAC"/>
            <enumeration value="CAMELLIA-CBC"/>
            <enumeration value="CAMELLIA-CTR"/>
            <enumeration value="CAMELLIA-CCM-8"/>
            <enumeration value="CAMELLIA-CCM-12"/>
            <enumeration value="CAMELLIA-CCM-16"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="IKEv2SupportedPseudoRandomFunctions" access="readOnly">
        <description>
          Supported IKEv2 pseudo-random functions
          {{bibref|IKEv2-params|Transform Type 2}}. {{enum}}

          Note that these are the names from the above reference, transformed
          as follows:

          * Leading ''PRF_'' (when present) discarded because they all
            pseudo-random functions so it's not needed.

          * Underscores changed to hyphens to preserve names used in existing
            data models.

          * Hyphen inserted after ''AES'' (or other acronym) when immediately
            followed by a key length.

          As additional functions are added to the above reference, this data
          model will be extended according to the above conventions.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="HMAC-MD5"/>
            <enumeration value="HMAC-SHA1"/>
            <enumeration value="HMAC-TIGER"/>
            <enumeration value="AES-128-XCBC"/>
            <enumeration value="HMAC-SHA2-256"/>
            <enumeration value="HMAC-SHA2-384"/>
            <enumeration value="HMAC-SHA2-512"/>
            <enumeration value="AES-128-CMAC"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SupportedIntegrityAlgorithms" access="readOnly">
        <description>
          Supported integrity algorithms {{bibref|IKEv2-params|Transform Type
          3}}. {{enum}}

          Note that these are the names from the above reference, transformed
          as follows:

          * Leading ''AUTH_'' (when present) discarded because they all
            authentication (integrity) algorithms so it's not needed.

          * Underscores changed to hyphens to preserve names used in existing
            data models.

          As additional algorithms are added to the above reference, this data
          model will be extended according to the above conventions.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="NONE"/>
            <enumeration value="HMAC-MD5-96"/>
            <enumeration value="HMAC-SHA1-96"/>
            <enumeration value="DES-MAC"/>
            <enumeration value="KPDK-MD5"/>
            <enumeration value="AES-XCBC-96"/>
            <enumeration value="HMAC-MD5-128"/>
            <enumeration value="HMAC-SHA1-160"/>
            <enumeration value="AES-CMAC-96"/>
            <enumeration value="AES-128-GMAC"/>
            <enumeration value="AES-192-GMAC"/>
            <enumeration value="AES-256-GMAC"/>
            <enumeration value="HMAC-SHA2-256-128"/>
            <enumeration value="HMAC-SHA2-256-192"/>
            <enumeration value="HMAC-SHA2-256-256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SupportedDiffieHellmanGroupTransforms"
          access="readOnly">
        <description>
          Supported Diffie-Hellman group transforms
          {{bibref|IKEv2-params|Transform Type 4}}. {{enum}}

          Note that these are the names from the above reference, transformed
          as follows:

          * Name (other than ''NONE'') always starts with the type of group,
            currently ''MODP'' or ''ECP'' (implies ECP random).

          * This is followed by ''-NN'', where ''NN'' is the group length in
            bits.

          * this is followed by ''-PRIME-NN'' for groups with prime order
            subgroups, where ''NN'' is the subgroup length in bits.

          As additional algorithms are added to the above reference, this data
          model will be extended according to the above conventions.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="NONE"/>
            <enumeration value="MODP-768"/>
            <enumeration value="MODP-1024"/>
            <enumeration value="MODP-1536"/>
            <enumeration value="MODP-2048"/>
            <enumeration value="MODP-3072"/>
            <enumeration value="MODP-4096"/>
            <enumeration value="MODP-6144"/>
            <enumeration value="MODP-8192"/>
            <enumeration value="ECP-256"/>
            <enumeration value="ECP-384"/>
            <enumeration value="ECP-521"/>
            <enumeration value="MODP-1024-PRIME-160"/>
            <enumeration value="MODP-2048-PRIME-224"/>
            <enumeration value="MODP-2048-PRIME-256"/>
            <enumeration value="ECP-192"/>
            <enumeration value="ECP-224"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="MaxFilterEntries" access="readOnly">
        <description>
          The maximum number of entries in the {{object|Filter}} table.

          A value of 0 means no specific limit.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MaxProfileEntries" access="readOnly">
        <description>
          The maximum number of entries in the {{object|Profile}} table.

          A value of 0 means no specific limit.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

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

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

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

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

    <object name="Device.IPsec.Stats." access="readOnly" minEntries="1"
        maxEntries="1" version="2.5">
      <description>
        Global IPsec statistics. These statistics include all IPsec traffic,
        i.e. all IKEv2 negotiation, IKEv2 SAs and child SAs.

        The CPE MUST reset global IPsec Stats parameters (unless otherwise
        stated in individual object or parameter descriptions) either when
        IPsec is disabled ({{param|#.Enable}} is set to {{false}}) or when
        IPsec is enabled ({{param|#.Enable}} is set to {{true}}).
      </description>

      <parameter name="NegotiationFailures" access="readOnly">
        <description>
          The total number of times an IPsec negotiation failure has occurred.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="BytesSent" access="readOnly">
        <description>
          The total number of {{units}} sent by IPsec.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" access="readOnly">
        <description>
          The total number of {{units}} received by IPsec.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" access="readOnly">
        <description>
          The total number of {{units}} sent by IPsec.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" access="readOnly">
        <description>
          The total number of {{units}} received by IPsec.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" access="readOnly">
        <description>
          The total number of {{units}} discarded by IPsec due to any error.
          This can include packets dropped due to a lack of transmit buffers.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnknownSPIErrors" access="readOnly">
        <description>
          The total number of {{units}} discarded by IPsec due to an unknown
          SPI (Security Parameter Index).
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DecryptionErrors" access="readOnly">
        <description>
          The total number of {{units}} discarded by IPsec due to ESP
          decryption errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="IntegrityErrors" access="readOnly">
        <description>
          The total number of {{units}} discarded by IPsec due to integrity
          errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ReplayErrors" access="readOnly">
        <description>
          The total number of {{units}} discarded by IPsec due to replay
          errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PolicyErrors" access="readOnly">
        <description>
          The total number of {{units}} discarded by IPsec due to policy
          errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="OtherReceiveErrors" access="readOnly">
        <description>
          The total number of {{units}} discarded by IPsec due to errors other
          than unknown SPI, decryption, integrity, replay or policy errors.
          This can include packets dropped due to a lack of receive buffers.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IPsec.Filter.{i}." access="readWrite"
        numEntriesParameter="FilterNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.5">
      <description>
        Filter table that represents the IPsec Security Policy Database (SPD)
        {{bibref|RFC4301|Section 4.4.1}} selection criteria. Each (ordered)
        entry defines a set of selection criteria and references a
        {{object|#.Profile}} table entry that specifies how matching packets
        will be processed.

        SPD filtering is performed for all packets that might need to cross the
        IPsec boundary {{bibref|RFC4301|Section 3.1}}. Given that IPsec
        operates at the IP level, this means that SPD filtering conceptually
        occurs after bridging and before routing.

        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 IPsec Filter table entry.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The status of this IPsec 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.
        </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>
          {{datatype|expand}}

          For each packet, the highest ordered entry that matches the filter
          criteria is applied. All lower order entries are ignored.
        </description>
        <syntax>
          <dataType ref="Order"/>
        </syntax>
      </parameter>

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

      <parameter name="Interface" access="readWrite">
        <description>
          SPD selection 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 filters 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>
          SPD selection 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>
          SPD selection criterion.

          Destination IP address. {{empty}} indicates this criterion is not
          used, i.e. is ''ANY''.
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DestMask" access="readWrite">
        <description>
          SPD selection criterion.

          Destination IP address mask. If not {{empty}}, only the indicated
          network portion of the {{param|DestIP}} address is to be used for
          selection. {{empty}} indicates that the full {{param|DestIP}} address
          is to be used for selection.
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DestIPExclude" access="readWrite">
        <description>
          If {{false}}, the rule matches only those packets that match the
          (masked) {{param|DestIP}} entry, if specified.

          If {{true}}, the rule matches all packets except those that match the
          (masked) {{param|DestIP}} entry, if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="SourceIP" access="readWrite">
        <description>
          SPD selection criterion.

          Source IP address. {{empty}} indicates this criterion is not used,
          i.e. is ''ANY''.
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SourceMask" access="readWrite">
        <description>
          SPD selection criterion.

          Source IP address mask. If not {{empty}}, only the indicated network
          portion of the {{param|SourceIP}} address is to be used for
          selection. {{empty}} indicates that the full {{param|SourceIP}}
          address is to be used for selection.
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SourceIPExclude" access="readWrite">
        <description>
          If {{false}}, the rule matches only those packets that match the
          (masked) {{param|SourceIP}} entry, if specified.

          If {{true}}, the rule matches all packets except those that match the
          (masked) {{param|SourceIP}} entry, if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Protocol" access="readWrite">
        <description>
          SPD selection criterion.

          Protocol number. A value of -1 indicates this criterion is not used,
          i.e. is ''ANY''.

          Note that {{bibref|RFC4301}} refers to this as the ''Next Layer
          Protocol''. It is obtained from the IPv4 ''Protocol'' or the IPv6
          ''Next Header'' fields.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="255"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="ProtocolExclude" access="readWrite">
        <description>
          If {{false}}, the rule matches only those packets that match
          {{param|Protocol}}, if specified.

          If {{true}}, the rule matches all packets except those that match
          {{param|Protocol}}, if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="DestPort" access="readWrite">
        <description>
          SPD selection criterion.

          Destination port number. A value of -1 indicates this criterion is
          not used, i.e. is ''ANY''.

          The value of this parameter is ignored for protocols that do not use
          ports, e.g. ICMP (1).
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="65535"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="DestPortRangeMax" access="readWrite">
        <description>
          SPD selection criterion.

          If specified, indicates a destination port address range from
          {{param|DestPort}} through {{param}} (inclusive), in which case
          {{param}} MUST be greater than or equal to {{param|DestPort}}.

          A value of -1 indicates that no destination 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 rule matches only those packets that match
          {{param|DestPort}} (or port range), if specified.

          If {{true}}, the rule matches all packets except those that match
          {{param|DestPort}} (or port range), if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="SourcePort" access="readWrite">
        <description>
          SPD selection criterion.

          Source port number. A value of -1 indicates this criterion is not
          used, i.e. is ''ANY''.

          The value of this parameter is ignored for protocols that do not use
          ports, e.g. ICMP (1).
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="65535"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="SourcePortRangeMax" access="readWrite">
        <description>
          SPD selection criterion.

          If specified, indicates a source port address range from
          {{param|SourcePort}} through {{param}} (inclusive), in which case
          {{param}} MUST be greater than or equal to {{param|SourcePort}}.

          A value of -1 indicates that no source 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 rule matches only those packets that match
          {{param|SourcePort}} (or port range), if specified.

          If {{true}}, the rule matches all packets except those that match
          {{param|SourcePort}} (or port range), if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="ProcessingChoice" access="readWrite">
        <description>
          Indicates how packets that match this rule will be processed
          {{bibref|RFC4301|Section 4.4.1}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Discard">
              <description>
                Packet is not allowed to traverse the IPsec boundary; packet
                will be discarded
              </description>
            </enumeration>
            <enumeration value="Bypass">
              <description>
                Packet is allowed to bypass traverse the IPsec boundary without
                protection
              </description>
            </enumeration>
            <enumeration value="Protect">
              <description>
                Packet is afforded protection as specified by {{param|Profile}}
              </description>
            </enumeration>
          </string>
          <default type="object" value="Bypass"/>
        </syntax>
      </parameter>

      <parameter name="Profile" access="readWrite">
        <description>
          The profile that defines the IPsec treatment for matching packets.
          {{reference}}

          If {{param|ProcessingChoice}} is {{enum|Protect|ProcessingChoice}},
          {{param}} MUST NOT be {{empty}}. In this case, if it ever becomes
          {{empty}}, e.g. because the referenced profile is deleted, this IPsec
          Filter table entry is invalid and {{param|Status}} MUST be set to
          {{enum|Error_Misconfigured|Status}}.

          If {{param|ProcessingChoice}} is not
          {{enum|Protect|ProcessingChoice}}, {{param}} is ignored.

          Any changes to the referenced profile will have an immediate effect
          on any established IPsec tunnels. Such changes will often force IKEv2
          sessions and child SAs to be re-established.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="#.Profile."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IPsec.Profile.{i}." access="readWrite"
        numEntriesParameter="ProfileNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.5">
      <description>
        Profile table that represents the IPsec Security Policy Database (SPD)
        {{bibref|RFC4301|Section 4.4.1}} processing info. Each entry defines
        the IPsec treatment for packets that match the {{object|#.Filter}}
        entries that reference the entry.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="MaxChildSAs" access="readWrite">
        <description>
          Controls the maximum number of child Security Association (SA) pairs
          that can be negotiated by a single IKEv2 session.

          If a new child SA pair is needed, but the current IKEv2 session
          already has {{param}} child SA pairs, an additional IKEv2 session
          (and therefore an additional IPsec tunnel) will be established.

          A value of 0 means no specific limit.

          Note that support for more than one child SA pair per IKEv2 session
          is OPTIONAL {{bibref|RFC5996|Section 1.3}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="RemoteEndpoints" access="readWrite">
        <description>
          The host name or IP address of the remote IPsec tunnel endpoint. If
          more than one name/address is supplied, they will be tried in turn,
          i.e. they are in decreasing order of precedence.
        </description>
        <syntax>
          <list maxItems="4">
            <size/>
          </list>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ForwardingPolicy" access="readWrite">
        <description>
          Identifier of the forwarding policy associated with traffic that is
          associated with this profile.

          The forwarding policy can be referenced by entries in the
          {{object|##.Routing.Router.{i}.IPv4Forwarding}} and
          {{object|##.Routing.Router.{i}.IPv6Forwarding}} tables, and therefore
          allows SPD selection criteria to influence the forwarding decision.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="Protocol" access="readWrite">
        <description>
          The "child" security protocol.

          This is not to be confused with
          {{object|#.Filter}}.{{param|#.Filter.{i}.Protocol}}, which is an SPD
          selector that can select packets that already have AH or ESP headers.
          {{object}}.{{param}} selects whether AH or ESP will be used when
          encapsulating a packet.
        </description>
        <syntax>
          <string>
            <enumeration value="AH">
              <description>
                Authentication Header {{bibref|RFC4302}}; can only be selected
                if {{param|#.AHSupported}} is {{true}}
              </description>
            </enumeration>
            <enumeration value="ESP">
              <description>
                Encapsulating Security Payload {{bibref|RFC4303}}
              </description>
            </enumeration>
          </string>
          <default type="object" value="ESP"/>
        </syntax>
      </parameter>

      <parameter name="IKEv2AuthenticationMethod" access="readWrite">
        <description>
          IKEv2 CPE authentication method {{bibref|RFC5996|Section 2.15}}.
          {{reference|an enabled row in the {{object|##.Security.Certificate}}
          table or in another table that contains appropriate CPE credentials}}

          If {{empty}}, or the referenced row is disabled or deleted, the CPE
          chooses the authentication method based on local policy.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="IKEv2AllowedEncryptionAlgorithms" access="readWrite">
        <description>
          Allowed IKEv2 encryption algorithms.
        </description>
        <syntax>
          <list/>
          <string>
            <enumerationRef
                targetParam=".IPsec.IKEv2SupportedEncryptionAlgorithms"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ESPAllowedEncryptionAlgorithms" access="readWrite">
        <description>
          Allowed ESP encryption algorithms.
        </description>
        <syntax>
          <list/>
          <string>
            <enumerationRef
                targetParam=".IPsec.ESPSupportedEncryptionAlgorithms"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="IKEv2AllowedPseudoRandomFunctions" access="readWrite">
        <description>
          Allowed IKEv2 pseudo-random functions.
        </description>
        <syntax>
          <list/>
          <string>
            <enumerationRef
                targetParam=".IPsec.IKEv2SupportedPseudoRandomFunctions"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="IKEv2AllowedIntegrityAlgorithms" access="readWrite">
        <description>
          Allowed IKEv2 integrity algorithms.
        </description>
        <syntax>
          <list/>
          <string>
            <enumerationRef targetParam=".IPsec.SupportedIntegrityAlgorithms"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="AHAllowedIntegrityAlgorithms" access="readWrite">
        <description>
          Allowed AH integrity algorithms {{bibref|IKEv2-params|Transform Type
          3}} {{bibref|RFC4835|Section 3.2}}.
        </description>
        <syntax>
          <list/>
          <string>
            <enumerationRef targetParam=".IPsec.SupportedIntegrityAlgorithms"/>
          </string>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>

      <parameter name="ESPAllowedIntegrityAlgorithms" access="readWrite">
        <description>
          Allowed ESP integrity algorithms {{bibref|IKEv2-params|Transform Type
          3}} {{bibref|RFC4835|Section 3.1.1}}.
        </description>
        <syntax>
          <list/>
          <string>
            <enumerationRef targetParam=".IPsec.SupportedIntegrityAlgorithms"/>
          </string>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>

      <parameter name="IKEv2AllowedDiffieHellmanGroupTransforms"
          access="readWrite">
        <description>
          Allowed IKEv2 Diffie-Hellman group transforms.
        </description>
        <syntax>
          <list/>
          <string>
            <enumerationRef
                targetParam=".IPsec.SupportedDiffieHellmanGroupTransforms"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="IKEv2DeadPeerDetectionTimeout" access="readWrite">
        <description>
          IKEv2 Dead Peer Detection (DPD) timeout in {{units}}.
          {{bibref|RFC5996|section 2.4}}
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="IKEv2NATTKeepaliveTimeout" access="readWrite">
        <description>
          IKEv2 NAT traversal (NAT-T) keepalive timeout in {{units}}.
          {{bibref|RFC3948|Section 4}}
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="AntiReplayWindowSize" access="readWrite">
        <description>
          The size of the AH or ESP Anti-Replay Window.
          {{bibref|RFC4302|Section B.2}} {{bibref|RFC4303|Section A2}}

          A value of 0 means that Sequence Number Verification is disabled.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="DoNotFragment" access="readWrite">
        <description>
          Controls the value of the ''Do Not Fragment'' (DF) bit.
          {{bibref|RFC4301|Section 8.1}}
        </description>
        <syntax>
          <string>
            <enumeration value="Set"/>
            <enumeration value="Clear"/>
            <enumeration value="Copy">
              <description>
                Copy from inner header; applies only when both inner and outer
                headers are IPv4
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="DSCPMarkPolicy" access="readWrite">
        <description>
          DSCP with which to mark the outer IP header for traffic that is
          associated with this IPsec channel.

          A value of -1 indicates copy from the incoming packet.

          A value of -2 indicates automatic marking of DSCP.

          De-tunneled packets are never re-marked.

          Automatic DSCP marking behavior is a local matter to the CPE,
          possibly influenced by other Broadband Forum standards that it
          supports.
        </description>
        <syntax>
          <int>
            <range minInclusive="-2" maxInclusive="63"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="IKEv2SATrafficLimit" access="readWrite">
        <description>
          IKEv2 SA lifetime in {{units}}, or zero if there is no traffic
          constraint on its expiration.

          If both {{param}} and {{param|IKEv2SATimeLimit}} are non-zero, the
          IKEv2 SA is deleted when the first limit is reached.
        </description>
        <syntax>
          <unsignedLong>
            <units value="bytes"/>
          </unsignedLong>
        </syntax>
      </parameter>

      <parameter name="IKEv2SATimeLimit" access="readWrite">
        <description>
          IKEv2 SA lifetime in {{units}}, or zero if there is no time
          constraint on its expiration.

          If both {{param}} and {{param|IKEv2SATrafficLimit}} are non-zero, the
          IKEv2 SA is deleted when the first limit is reached.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="IKEv2SAExpiryAction" access="readWrite">
        <description>
          Action to take when an IKEv2 SA expires, whether as a result of
          hitting a traffic limit or a time limit.
        </description>
        <syntax>
          <string>
            <enumeration value="Renegotiate"/>
            <enumeration value="Delete"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ChildSATrafficLimit" access="readWrite">
        <description>
          Child SA lifetime in {{units}}, or zero if there is no traffic
          constraint on its expiration.

          If both {{param}} and {{param|ChildSATimeLimit}} are non-zero, the
          child SA is deleted when the first limit is reached.
        </description>
        <syntax>
          <unsignedLong>
            <units value="bytes"/>
          </unsignedLong>
        </syntax>
      </parameter>

      <parameter name="ChildSATimeLimit" access="readWrite">
        <description>
          Child SA lifetime in {{units}}, or zero if there is no time
          constraint on its expiration.

          If both {{param}} and {{param|ChildSATrafficLimit}} are non-zero, the
          child SA is deleted when the first limit is reached.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ChildSAExpiryAction" access="readWrite">
        <description>
          Action to take when a Child SA expires, whether as a result of
          hitting a traffic limit or a time limit.
        </description>
        <syntax>
          <string>
            <enumeration value="Renegotiate"/>
            <enumeration value="Delete"/>
          </string>
        </syntax>
      </parameter>

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

    <object name="Device.IPsec.Profile.{i}.SentCPAttr.{i}." access="readWrite"
        numEntriesParameter="SentCPAttrNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded"
        version="2.5">
      <description>
        Each instance of this object represents an IKEv2 Configuration Payload
        (CP) {{bibref|RFC5996|Section 3.15}} Attribute that MUST, if enabled,
        be sent in IKEv2 CP CFG_REQUEST messages. All such Attributes MUST be
        listed.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="Type"/>
      </uniqueKey>

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

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

      <parameter name="Type" access="readWrite">
        <description>
          CP Attribute Type as described in {{bibref|RFC5996|Section 3.15.1}}
          and defined in {{bibref|IKEv2-params|IKEv2 Configuration Payload
          Attribute Types}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="32767"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Value" access="readWrite">
        <description>
          A hexbinary encoded CP Attribute Value as described in
          {{bibref|RFC5996|Section 3.15.1}} and defined in
          {{bibref|IKEv2-params|IKEv2 Configuration Payload Attribute Types}}.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="65535"/>
          </hexBinary>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IPsec.Tunnel.{i}." access="readOnly"
        numEntriesParameter="TunnelNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.5">
      <description>
        Represents an IPsec tunnel, i.e. a virtual IP interface that models an
        IPsec tunnel entry point and exit point. A {{object}} instance always
        references (and has the same lifetime as) a
        ({{enum|Tunnel|##.IP.Interface.{i}.Type}},{{enum|Tunneled|##.IP.Interface.{i}.Type}})
        {{object|##.IP.Interface}} pair. The {{object}} instance models the
        IPsec-specific concepts, the {{enum|Tunnel|##.IP.Interface.{i}.Type}}
        {{object|##.IP.Interface}} instance models the generic concepts, and
        the {{enum|Tunneled|##.IP.Interface.{i}.Type}}
        {{object|##.IP.Interface}} instance exists only so it can be referenced
        by forwarding or filter rules.

        {{object}} instances are automatically created (as needed) when
        {{object|#.Filter}} instances are enabled and disabled.

        Each instance's {{param|Filters}} parameter references the
        {{object|#.Filter}} instances that require the {{object}} instance to
        exist. If this list ever becomes {{empty}}, e.g. because all the
        referenced {{object|#.Filter}} instances have been disabled or deleted,
        the CPE MAY choose not to delete the {{object}} instance (and its
        associated
        ({{enum|Tunnel|##.IP.Interface.{i}.Type}},{{enum|Tunneled|##.IP.Interface.{i}.Type}})
        {{object|##.IP.Interface}} pair). This can be desirable, because
        {{object|##.QoS.Classification}},
        {{object|##.Routing.Router.{i}.IPv4Forwarding}},
        {{object|##.Routing.Router.{i}.IPv6Forwarding}} etc instances might be
        referencing the {{object|##.IP.Interface}} instances.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="TunnelInterface"/>
        <parameter ref="TunneledInterface"/>
      </uniqueKey>

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

      <parameter name="TunnelInterface" access="readOnly">
        <description>
          The corresponding auto-created
          {{enum|Tunnel|##.IP.Interface.{i}.Type}} {{object|##.IP.Interface}}
          instance. {{reference||delete}}
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="##.IP.Interface."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="TunneledInterface" access="readOnly">
        <description>
          The corresponding auto-created
          {{enum|Tunneled|##.IP.Interface.{i}.Type}} {{object|##.IP.Interface}}
          instance. {{reference||delete}}
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="##.IP.Interface."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Filters" access="readOnly">
        <description>
          The {{object|#.Filter}} instances that require this {{object}}
          instance to exist. {{reference}}
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetParent="#.Filter."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IPsec.Tunnel.{i}.Stats." access="readOnly"
        minEntries="1" maxEntries="1" version="2.5">
      <description>
        Statistics for this IPsec tunnel, i.e. all traffic that has passed
        through the tunnel, including IKEv2 negotiation, IKEv2 SA and ChildSA
        traffic.

        The CPE MUST reset the tunnel's Stats parameters (unless otherwise
        stated in individual object or parameter descriptions) either when the
        tunnel becomes operationally down due to a previous administrative down
        (i.e. its associated {{param|###.IP.Interface.{i}.Status}} parameter
        transitions to a down state after the tunnel has been disabled) or when
        the tunnel becomes administratively up (i.e. its associated
        {{param|###.IP.Interface.{i}.Enable}} parameter transition from
        {{false}} to {{true}}).

        Note that this object does not include generic statistics that are
        available in the associated {{object|###.IP.Interface.{i}.Stats}}
        object.
      </description>

      <parameter name="DecryptionErrors" access="readOnly">
        <description>
          The total number of inbound {{units}} discarded due to ESP decryption
          errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="IntegrityErrors" access="readOnly">
        <description>
          The total number of inbound {{units}} discarded due to integrity
          errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ReplayErrors" access="readOnly">
        <description>
          The total number of inbound {{units}} discarded due to replay errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PolicyErrors" access="readOnly">
        <description>
          The total number of inbound {{units}} discarded due to policy errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="OtherReceiveErrors" access="readOnly">
        <description>
          The total number of inbound {{units}} discarded due to errors other
          than decryption, integrity, replay or policy errors. This can include
          packets dropped due to a lack of receive buffers.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IPsec.IKEv2SA.{i}." access="readOnly"
        numEntriesParameter="IKEv2SANumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.5">
      <description>
        Represents an IKEv2 Security Association (SA), corresponding to an
        IKEv2 session. Instances are automatically created and deleted as IKEv2
        SAs are created and deleted.
      </description>
      <uniqueKey functional="true">
        <parameter ref="Tunnel"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Status" access="readOnly">
        <description>
          The current operational state of the IKEv2 SA.
        </description>
        <syntax>
          <string>
            <enumeration value="Up"/>
            <enumeration value="Down"/>
            <enumeration value="Unknown"/>
            <enumeration value="Dormant"/>
            <enumeration value="Error" optional="true"/>
          </string>
        </syntax>
      </parameter>

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

      <parameter name="Tunnel" access="readOnly">
        <description>
          The associated {{object|#.Tunnel}} instance. {{reference}}

          Note that {{param}} is a unique key, i.e only one {{object}} instance
          is associated with a given {{object|#.Tunnel}} instance. During
          rekeying {{bibref|RFC5996|Section 2.8}}, a new IKEv2 SA is created
          and inherits the existing IKEv2 SA's child SAs, then the old IKEv2 SA
          is deleted. From the management point of view the new and old IKEv2
          SAs are the same SA and MUST be modeled using the same {{object}}
          instance.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="#.Tunnel."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LocalAddress" access="readOnly">
        <description>
          The local IP address that this IKEv2 SA was negotiated with. This is
          assigned via IKEv2 and will also be available via the associated
          {{object|#.Tunnel}}'s {{param|#.Tunnel.{i}.TunnelInterface}}
          {{object|##.IP.Interface.{i}.IPv4Address}} or
          {{object|##.IP.Interface.{i}.IPv6Address}} table (as appropriate).
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
        </syntax>
      </parameter>

      <parameter name="RemoteAddress" access="readOnly">
        <description>
          The IP address of the peer that this IKEv2 SA was negotiated with.
          This will be the IP address of one of the security gateways
          configured via {{param|#.Profile.{i}.RemoteEndpoints}}.
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
        </syntax>
      </parameter>

      <parameter name="EncryptionAlgorithm" access="readOnly">
        <description>
          The encryption algorithm applied to traffic carried by this IKEv2 SA.

          This will be one of the
          {{param|#.Profile.{i}.IKEv2AllowedEncryptionAlgorithms}} from the
          {{object|#.Profile}} instance via which this IKEv2 SA was created.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="EncryptionKeyLength" access="readOnly">
        <description>
          The length of the encryption key in {{units}} used for the algorithm
          specified in the {{param|EncryptionAlgorithm}} parameter.

          The value is 0 if the key length is implicit in the specified
          algorithm or there is no encryption applied.
        </description>
        <syntax>
          <unsignedInt>
            <units value="bits"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="PseudoRandomFunction" access="readOnly">
        <description>
          The pseudo-random function used by this IKEv2 SA.

          This will be one of the
          {{param|#.Profile.{i}.IKEv2AllowedPseudoRandomFunctions}} from the
          {{object|#.Profile}} instance via which this IKEv2 SA was created.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="IntegrityAlgorithm" access="readOnly">
        <description>
          The integrity algorithm applied to the traffic carried by this IKEv2
          SA.

          This will be one of the
          {{param|#.Profile.{i}.IKEv2AllowedIntegrityAlgorithms}} from the
          {{object|#.Profile}} instance via which this IKEv2 SA was created.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="DiffieHellmanGroupTransform" access="readOnly">
        <description>
          The Diffie-Hellman Group used by this IKEv2 SA.

          This will be one of the
          {{param|#.Profile.{i}.IKEv2AllowedDiffieHellmanGroupTransforms}} from
          the {{object|#.Profile}} instance via which this IKEv2 SA was
          created.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="CreationTime" access="readOnly">
        <description>
          When this IKEv2 SA was set up.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="NATDetected" access="readOnly">
        <description>
          Whether NAT traversal is supported by the device and, if so, whether
          a NAT was detected.
        </description>
        <syntax>
          <string>
            <enumeration value="None"/>
            <enumeration value="Local"/>
            <enumeration value="Remote"/>
            <enumeration value="Unsupported"/>
          </string>
        </syntax>
      </parameter>

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

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

    <object name="Device.IPsec.IKEv2SA.{i}.Stats." access="readOnly"
        minEntries="1" maxEntries="1" version="2.5">
      <description>
        Statistics for this IKEv2 Security Association (SA).

        The CPE MUST reset the IKEv2 SA's Stats parameters (unless otherwise
        stated in individual object or parameter descriptions) whenever the
        associated {{param|#.Tunnel}} instance's Stats parameters are reset.
      </description>

      <parameter name="BytesSent" access="readOnly">
        <description>
          The total number of {{units}} handled in the outbound direction by
          the IKEv2 SA.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" access="readOnly">
        <description>
          The total number of {{units}} handled in the inbound direction by the
          IKEv2 SA.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" access="readOnly">
        <description>
          The total number of {{units}} handled in the outbound direction by
          the IKEv2 SA.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" access="readOnly">
        <description>
          The total number of {{units}} handled in the inbound direction by the
          IKEv2 SA.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" access="readOnly">
        <description>
          The total number of outbound {{units}} from this IKEv2 SA discarded
          for any reason. This can include {{units}} dropped due to a lack of
          transmit buffer space.

          Note that this refers to IKE protocol {{units}}, and not to {{units}}
          carried by other SAs.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DecryptionErrors" access="readOnly">
        <description>
          The total number of inbound {{units}} to this IKEv2 SA discarded due
          to decryption errors.

          Note that this refers to IKEv2 protocol {{units}}, and not to
          {units}} carried by other SAs.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="IntegrityErrors" access="readOnly">
        <description>
          The total number of inbound {{units}} to this IKEv2 SA discarded due
          to integrity errors.

          Note that this refers to IKEv2 protocol {{units}}, and not to
          {{units}} carried by other SAs.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="OtherReceiveErrors" access="readOnly">
        <description>
          The total number of inbound {{units}} to this IKEv2 SA discarded for
          reasons other than decryption or integrity errors. This can include
          {{units}} dropped due to a lack of receive buffer space.

          Note that this refers to IKEv2 protocol {{units}}, and not to
          {{units}} carried by other SAs.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IPsec.IKEv2SA.{i}.ReceivedCPAttr.{i}."
        access="readWrite" numEntriesParameter="ReceivedCPAttrNumberOfEntries"
        minEntries="0" maxEntries="unbounded" dmr:noUniqueKeys="true"
        version="2.5">
      <description>
        This is a transitory table that lists all the IKEv2 Configuration
        Payload (CP) {{bibref|RFC5996|Section 3.15}} Attributes that have been
        received via CFG_REPLY messages. Table entries are automatically
        created to correspond with received Attributes. However, it is a local
        matter to the CPE when to delete old table entries.

        If the same Attribute is received multiple times, it is up to the CPE
        to decide which entries to include (i.e. whether the same Attribute
        will be present multiple times). In order to allow for the same
        Attribute to be present multiple times within the table, this table has
        no unique key defined.
      </description>

      <parameter name="Type" access="readOnly">
        <description>
          CP Attribute Type as described in {{bibref|RFC5996|Section 3.15.1}}
          and defined in {{bibref|IKEv2-params|IKEv2 Configuration Payload
          Attribute Types}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="32767"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Value" access="readOnly">
        <description>
          A hexbinary encoded CP Attribute Value as described in
          {{bibref|RFC5996|Section 3.15.1}} and defined in
          {{bibref|IKEv2-params|IKEv2 Configuration Payload Attribute Types}}.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="65535"/>
          </hexBinary>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IPsec.IKEv2SA.{i}.ChildSA.{i}." access="readOnly"
        numEntriesParameter="ChildSANumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.5">
      <description>
        Represents a child Security Association (SA) pair, i.e. an inbound
        child SA and an outbound child SA.
      </description>
      <uniqueKey functional="true">
        <parameter ref="InboundSPI"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="OutboundSPI"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Status" access="readOnly">
        <description>
          The current operational state of the child SA pair.
        </description>
        <syntax>
          <string>
            <enumeration value="Up"/>
            <enumeration value="Down"/>
            <enumeration value="Unknown"/>
            <enumeration value="Dormant"/>
            <enumeration value="Error" optional="true"/>
          </string>
        </syntax>
      </parameter>

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

      <parameter name="InboundSPI" access="readOnly">
        <description>
          The inbound child SA's Security Parameter Index (SPI).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="OutboundSPI" access="readOnly">
        <description>
          The outbound child SA's Security Parameter Index (SPI).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="CreationTime" access="readOnly">
        <description>
          The date and time when the child SA was created.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Stats."
        access="readOnly" minEntries="1" maxEntries="1" version="2.5">
      <description>
        Statistics for this child Security Association (SA).

        The CPE MUST reset the child SA's Stats parameters (unless otherwise
        stated in individual object or parameter descriptions) whenever the
        parent {{object|#}} instance's Stats parameters are reset.
      </description>

      <parameter name="BytesSent" access="readOnly">
        <description>
          The number of {{units}} handled by the outbound child SA.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" access="readOnly">
        <description>
          The number of {{units}} handled by the inbound child SA.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" access="readOnly">
        <description>
          The number of {{units}} handled by the outbound child SA.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" access="readOnly">
        <description>
          The number of {{units}} handled by the inbound child SA.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" access="readOnly">
        <description>
          The number of {{units}} discarded by the outbound child SA due to any
          error. This can include compression errors or errors due to a lack of
          transmit buffers.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DecryptionErrors" access="readOnly">
        <description>
          The number of {{units}} discarded by the inbound child SA due to
          decryption errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="IntegrityErrors" access="readOnly">
        <description>
          The number of {{units}} discarded by the inbound child SA due to
          integrity errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ReplayErrors" access="readOnly">
        <description>
          The number of {{units}} discarded by the inbound child SA due to
          replay errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PolicyErrors" access="readOnly">
        <description>
          The number of {{units}} discarded by the inbound child SA due to
          policy errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="OtherReceiveErrors" access="readOnly">
        <description>
          The number of {{units}} discarded by the inbound child SA due to
          errors other than decryption, integrity, replay or policy errors.
          This can include decompression errors or errors due to a lack of
          receive buffers.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>
    </object>

    <object name="Device.GRE." access="readOnly" minEntries="1" maxEntries="1"
        version="2.8">
      <description>
        This object contains parameters associated with the Generic Routing
        Encapsulation (GRE) Tunnel ({{bibref|RFC2784}}) with Key and Sequence
        Number extensions ({{bibref|RFC2890}}). This object also provides a
        means to treat packets that are encapsulated within a GRE Tunnel by
        using a set of {{object|Filter}} objects to determine the treatment of
        the packet.
      </description>

      <parameter name="TunnelNumberOfEntries" 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.GRE.Tunnel.{i}." access="readWrite"
        numEntriesParameter="TunnelNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.8">
      <description>
        GRE Tunnel table, models the GRE Tunnel instance and represents the
        entry point and exit point of the tunnel in relation to the WAN
        interface. A {{object}} object has one or more {{object|Interface}}
        objects that further define the sessions or flows within the tunnel.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="Status" access="readOnly">
        <description>
          The current operational state of the tunnel.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Enabled"/>
            <enumeration value="Error" optional="true"/>
          </string>
        </syntax>
      </parameter>

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

      <parameter name="RemoteEndpoints" access="readWrite">
        <description>
          The Fully Qualified Domain Name (FQDN) or IP address of the remote
          GRE tunnel endpoint. If more than one name/address is supplied, they
          will be tried in turn, i.e. they are in decreasing order of
          precedence.
        </description>
        <syntax>
          <list maxItems="4">
            <size/>
          </list>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="KeepAlivePolicy" access="readWrite">
        <description>
          The mechanism used to keep the tunnel from timing out at the
          {{param|ConnectedRemoteEndpoint}}.
        </description>
        <syntax>
          <string>
            <enumeration value="ICMP"/>
            <enumeration value="None"/>
          </string>
          <default type="object" value="None"/>
        </syntax>
      </parameter>

      <parameter name="KeepAliveTimeout" access="readWrite">
        <description>
          The tunnel keepalive timeout in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="10"/>
        </syntax>
      </parameter>

      <parameter name="KeepAliveThreshold" access="readWrite">
        <description>
          Number of KeepAlive messages unacknowledged by the
          {{param|ConnectedRemoteEndpoint}} before the {{object}} is perceived
          failed.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="3"/>
        </syntax>
      </parameter>

      <parameter name="DeliveryHeaderProtocol" access="readWrite">
        <description>
          The protocol used for the delivery header.
        </description>
        <syntax>
          <string>
            <enumeration value="IPv4"/>
            <enumeration value="IPv6"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="DefaultDSCPMark" access="readWrite">
        <description>
          If the specified entries in the {{object|#.Filter}} table do not
          match this {{object}} object or an instance of the
          {{object|Interface}} object for this {{object}} object, then the
          value of this parameter is applied to the delivery header of the
          packets in this {{object}}.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="ConnectedRemoteEndpoint" access="readOnly">
        <description>
          The Fully Qualified Domain Name (FQDN) name or IP address of the
          connected remote GRE tunnel endpoint.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

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

    <object name="Device.GRE.Tunnel.{i}.Interface.{i}." access="readWrite"
        numEntriesParameter="InterfaceNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.8">
      <description>
        GRE Interface table (a stackable interface object as described in
        {{bibref|TR-181i2|Section 4.2}}). The {{object}} object models the GRE
        Header as defined in {{bibref|RFC2784}} and extensions to the GRE
        Header as defined in {{bibref|RFC2890}}. The {{object}} object provides
        a way to discriminate how sessions or flows are encapsulated within the
        GRE Tunnel. In addition the {{object}} object represents the entry
        point and exit point of the tunnel in relation to the LAN interface.
        Unless the Key Identifier of {{bibref|RFC2890}} is supported there is
        only one instance of this {{object}} object per tunnel.
      </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">
        <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" version="2.8">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name">
        <description>
          The textual name of the interface as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" 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="ProtocolIdOverride" access="readWrite">
        <description>
          The Protocol ID assigned to this {{object}}. The Protocol Id is the
          EtherType value used to identify the encapsulated payload. When set
          to {{null}} the CPE determines the Protocol Id.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="UseChecksum" access="readWrite">
        <description>
          When {{true}}, includes the "Checksum" field in the GRE header as
          defined in {{bibref|RFC2784}}.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="KeyIdentifierGenerationPolicy" access="readWrite">
        <description>
          The method used to generate the Key Identifier extension as defined
          in.{{bibref|RFC2890}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Provisioned"/>
            <enumeration value="CPE_Generated" optional="true">
              <description>
                The generation of the Key field is CPE specific implementation.
              </description>
            </enumeration>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

      <parameter name="KeyIdentifier" access="readWrite">
        <description>
          When the value of {{param|KeyIdentifierGenerationPolicy}} is
          {{enum|Provisioned|KeyIdentifierGenerationPolicy}} this {{param}}
          parameter is used to identify an individual traffic flow within a GRE
          tunnel, as defined in {{bibref|RFC2890}}.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="UseSequenceNumber" access="readWrite">
        <description>
          When {{true}}, includes the "SequenceNumber" field in the GRE header
          as defined in {{bibref|RFC2890}}
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.GRE.Tunnel.{i}.Interface.{i}.Stats." minEntries="1"
        maxEntries="1" version="2.8">
      <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="Reset" access="readWrite" version="2.19">
        <description>
          Set this to {{true}} to reset all this object's statistics counters
          to zero.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BytesSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface,
          including framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface, including
          framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} that could not be transmitted
          because of errors.

          This can include packets dropped due to a lack of transmit buffers.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} that contained errors
          preventing them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="ErrorsReceived" version="2.19">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" activeNotify="canDeny"
          version="2.19">
        <description>
          The total number of outbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" activeNotify="canDeny"
          version="2.19">
        <description>
          The total number of inbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="DiscardPacketsReceived" version="2.19">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsReceived" activeNotify="canDeny"
          version="2.19">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were not addressed to a multicast or broadcast
          address at this layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsReceived" activeNotify="canDeny"
          version="2.19">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a multicast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsSent" activeNotify="canDeny"
          version="2.19">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsReceived" activeNotify="canDeny"
          version="2.19">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a broadcast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnknownProtoPacketsReceived" activeNotify="canDeny"
          version="2.19">
        <description>
          The total number of {{units}} received via the interface which were
          discarded because of an unknown or unsupported protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardChecksumReceived" access="readOnly">
        <description>
          The total number of {{units}} received by the tunnel interface that
          are discarded because of Checksum errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardSequenceNumberReceived" access="readOnly">
        <description>
          The total number of {{units}} received by the tunnel interface that
          are discarded because of Sequence Number errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>
    </object>

    <object name="Device.GRE.Tunnel.{i}.Stats." access="readOnly"
        minEntries="1" maxEntries="1" version="2.8">
      <description>
        Statistics for this GRE tunnel, i.e. all traffic that has passed
        through the tunnel.

        The device MUST reset the tunnel's Stats parameters (unless otherwise
        stated in individual object or parameter descriptions) either when the
        tunnel becomes operationally down due to a previous administrative down
        (i.e., Status parameter transitions to a disabled state after the
        tunnel has been disabled) or when the tunnel becomes administratively
        up (i.e. the Enable parameter transitioned from {{false}} to {{true}}).
      </description>

      <parameter name="KeepAliveSent" access="readOnly">
        <description>
          The total number of KeepAlive {{units}} sent out the tunnel.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="messages"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="KeepAliveReceived" access="readOnly">
        <description>
          The total number of KeepAlive {{units}} received by the tunnel.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="messages"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BytesSent" access="readOnly">
        <description>
          The total number of {{units}} sent by the tunnel.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" access="readOnly">
        <description>
          The total number of {{units}} received by the tunnel.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" access="readOnly">
        <description>
          The total number of {{units}} sent by the tunnel.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" access="readOnly">
        <description>
          The total number of {{units}} received by the tunnel.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" access="readOnly">
        <description>
          The total number of {{units}} discarded by the tunnel due to any
          error. This can include packets dropped due to a lack of transmit
          buffers.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" access="readOnly">
        <description>
          The total number of {{units}} received by the tunnel that contained
          errors preventing them from being delivered to a higher-layer
          protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>
    </object>

    <object name="Device.GRE.Filter.{i}." access="readWrite"
        numEntriesParameter="FilterNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.8">
      <description>
        GRE Filter table. Entries in this table are applied against the packets
        that are to be encapsulated within the GRE Tunnel based on the
        following conditions:

        * If the value of the {{param|AllInterfaces}} is {{true}}, then this
          entry will be applied to all {{object|#.Tunnel}} and
          {{object|#.Tunnel.{i}.Interface}} instances.

        * If the value of {{param|AllInterfaces}} is {{false}} and the value of
          {{param|Interface}} parameter is a reference to a row in the
          {{object|#.Tunnel}} table then this entry is applied to all
          {{object|#.Tunnel.{i}.Interface}} instances of the
          {{object|#.Tunnel}} reference.

        * If the value of {{param|AllInterfaces}} is {{false}} and the value of
          {{param|Interface}} parameter is a reference to a row in the
          {{object|#.Tunnel.{i}.Interface}} table then this entry is applied to
          the {{object|#.Tunnel.{i}.Interface}} reference.

        * If no entries are matched for the packet, then the default treatment
          (e.g., {{param|#.Tunnel.{i}.DefaultDSCPMark}}) is applied to the
          packet.

        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 filter.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The status of this filter. {{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>
          {{datatype|expand}}

          For each packet, the highest ordered entry that matches the filter
          criteria is applied. All lower order entries are ignored.
        </description>
        <syntax>
          <dataType ref="Order"/>
        </syntax>
      </parameter>

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

      <parameter name="Interface" access="readWrite">
        <description>
          Filter criterion. {{reference}}
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef
                refType="strong"
                targetParent="
                  #.Tunnel.
                  #.Tunnel.{i}.Interface."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="AllInterfaces" access="readWrite">
        <description>
          Filter criterion. This specifies that all ingress GRE tunnel
          interfaces are associated with the entry. If {{true}}, the value of
          {{param|Interface}} is ignored since all ingress GRE tunnel
          interfaces are indicated.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="VLANIDCheck" access="readWrite">
        <description>
          Filter criterion.

          Current outer Ethernet VLAN ID as defined in 802.1Q. A value of -1
          indicates this criterion is not used for filtering.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="VLANIDExclude" access="readWrite">
        <description>
          If {{false}}, the filter includes only those packets that match the
          {{param|VLANIDCheck}} entry, if specified.

          If {{true}}, the filter 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="DSCPMarkPolicy" access="readWrite">
        <description>
          DSCP with which to mark the outer IP header for traffic that is
          associated with the interface criterion.

          Automatic DSCP marking behavior is a local matter to the device,
          possibly influenced by other Broadband Forum standards that it
          supports.

          * A value of -1 indicates copy from the upstream packet.

          * A value of -2 indicates automatic marking of DSCP.
        </description>
        <syntax>
          <int>
            <range minInclusive="-2" maxInclusive="63"/>
          </int>
        </syntax>
      </parameter>
    </object>

    <object name="Device.L2TPv3." access="readOnly" minEntries="1"
        maxEntries="1" version="2.12">
      <description>
        This object contains parameters associated with the configuration and
        monitoring of stateless tunnels using the Layer Two Tunneling Protocol
        version 3 (L2TPv3) ({{bibref|RFC3931}}).

        This object also provides a means to treat packets that are
        encapsulated within a L2TPv3 Tunnel by using a set of {{object|Filter}}
        objects to determine the treatment of the packet.
      </description>

      <parameter name="TunnelNumberOfEntries" 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.L2TPv3.Tunnel.{i}." access="readWrite" minEntries="0"
        maxEntries="unbounded" numEntriesParameter="TunnelNumberOfEntries"
        version="2.12">
      <description>
        L2TPv3 Tunnel table, models the L2TPv3 Tunnel instance and represents
        the entry point and exit point of the tunnel in relation to the WAN
        interface.

        A {{object}} object has one or more {{object|Interface}} objects that
        further define the sessions or flows within the tunnel.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="Status" access="readOnly">
        <description>
          The current operational state of the tunnel.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Enabled"/>
            <enumeration value="Error" optional="true"/>
          </string>
        </syntax>
      </parameter>

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

      <parameter name="RemoteEndpoints" access="readWrite">
        <description>
          The Fully Qualified Domain Name (FQDN) or IP address of the remote
          L2TPv3 tunnel endpoint.

          If more than one name/address is supplied, they will be tried in
          turn, i.e. they are in decreasing order of precedence.
        </description>
        <syntax>
          <list maxItems="4"/>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="KeepAlivePolicy" access="readWrite">
        <description>
          The mechanism used to keep the tunnel from timing out at the
          {{param|ConnectedRemoteEndpoint}}.
        </description>
        <syntax>
          <string>
            <enumeration value="ICMP">
              <description>
                The version of the ICMP packet used for this {{param}} is based
                on the value of the {{param|DeliveryHeaderProtocol}} parameter
                (Either ICMP for IPv4 or ICMPv6 for IPv6).
              </description>
            </enumeration>
            <enumeration value="None"/>
          </string>
          <default type="object" value="None"/>
        </syntax>
      </parameter>

      <parameter name="KeepAliveTimeout" access="readWrite">
        <description>
          The tunnel keepalive timeout in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="10"/>
        </syntax>
      </parameter>

      <parameter name="KeepAliveThreshold" access="readWrite">
        <description>
          Number of KeepAlive messages unacknowledged by the
          {{param|ConnectedRemoteEndpoint}} before the {{object}} is perceived
          failed.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="3"/>
        </syntax>
      </parameter>

      <parameter name="DeliveryHeaderProtocol" access="readWrite">
        <description>
          The protocol used for the delivery header.
        </description>
        <syntax>
          <string>
            <enumeration value="IPv4"/>
            <enumeration value="IPv6"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="DefaultDSCPMark" access="readWrite">
        <description>
          If the specified entries in the {{object|#.Filter}} table do not
          match this {{object}} object or an instance of the
          {{object|Interface}} object for this {{object}} object, then the
          value of this parameter is applied to the delivery header of the
          packets in this {{object}}.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="TunnelEncapsulation" access="readWrite">
        <description>
          The protocol that this {{object}} will be encapsulated
        </description>
        <syntax>
          <string>
            <enumeration value="IP"/>
            <enumeration value="UDP"/>
          </string>
          <default type="object" value="IP"/>
        </syntax>
      </parameter>

      <parameter name="ConnectedRemoteEndpoint" access="readOnly">
        <description>
          The Fully Qualified Domain Name (FQDN) name or IP address of the
          connected remote L2TPv3 tunnel endpoint.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

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

    <object name="Device.L2TPv3.Tunnel.{i}.Interface.{i}." access="readWrite"
        numEntriesParameter="InterfaceNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.12">
      <description>
        L2TPv3 Interface table (a stackable interface object as described in
        {{bibref|TR-181i2|Section 4.2}}).

        The {{object}} object models the L2TPv3 Header as defined in
        {{bibref|RFC3931}} and the transport of L2 frames across over L2TPv3 as
        defined in {{bibref|RFC4719}}.

        The {{object}} object provides a way to discriminate how sessions or
        flows are encapsulated within the L2TPv3 Tunnel.

        In addition the {{object}} object represents the entry point and exit
        point of the tunnel in relation to the LAN 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">
        <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" version="2.12">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name">
        <description>
          The textual name of the interface as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" 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="SessionID" access="readWrite">
        <description>
          The unique Session ID to be used in the L2TPv3 header of the tunnel.

          A Session ID with a value of -1 indicates that he CPE is to generate
          the session ids for this {{object}} instance.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="-1"/>
            <range minInclusive="1" maxInclusive="65535"/>
          </int>
          <default type="object" value="1"/>
        </syntax>
      </parameter>

      <parameter name="CookiePolicy" access="readWrite">
        <description>
          The policy that defines how the Cookie is handled in this {{object}}
          instance.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled">
              <description>
                The device does not perform Cooking processing.
              </description>
            </enumeration>
            <enumeration value="Configured">
              <description>
                The value of the {{param|Cookie}} parameter is transmitted in
                the L2TPv3 header.
              </description>
            </enumeration>
            <enumeration value="Generated">
              <description>
                The device generates the value of the Cookie transmitted in the
                L2TPv3 header.
              </description>
            </enumeration>
          </string>
          <default type="object" value="Configured"/>
        </syntax>
      </parameter>

      <parameter name="Cookie" access="readWrite">
        <description>
          The Cookie transmitted in the L2TPv3 header. The default is to set
          the Cookie to the device's MAC address that is encoded in the low
          order 6 bytes.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.L2TPv3.Tunnel.{i}.Interface.{i}.Stats."
        minEntries="1" maxEntries="1" version="2.12">
      <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="Reset" access="readWrite" version="2.19">
        <description>
          Set this to {{true}} to reset all this object's statistics counters
          to zero.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BytesSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface,
          including framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface, including
          framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} that could not be transmitted
          because of errors.

          This can include packets dropped due to a lack of transmit buffers.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} that contained errors
          preventing them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="ErrorsReceived" version="2.19">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" activeNotify="canDeny"
          version="2.19">
        <description>
          The total number of outbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" activeNotify="canDeny"
          version="2.19">
        <description>
          The total number of inbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="DiscardPacketsReceived" version="2.19">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsReceived" activeNotify="canDeny"
          version="2.19">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were not addressed to a multicast or broadcast
          address at this layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsReceived" activeNotify="canDeny"
          version="2.19">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a multicast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsSent" activeNotify="canDeny"
          version="2.19">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsReceived" activeNotify="canDeny"
          version="2.19">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a broadcast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnknownProtoPacketsReceived" activeNotify="canDeny"
          version="2.19">
        <description>
          The total number of {{units}} received via the interface which were
          discarded because of an unknown or unsupported protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardChecksumReceived" access="readOnly">
        <description>
          The total number of {{units}} received by the tunnel interface that
          are discarded because of Checksum errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardSequenceNumberReceived" access="readOnly">
        <description>
          The total number of {{units}} received by the tunnel interface that
          are discarded because of Sequence Number errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>
    </object>

    <object name="Device.L2TPv3.Tunnel.{i}.UDP." access="readOnly"
        minEntries="1" maxEntries="1" version="2.12">
      <description>
        This {{object}} provides the parameters when the value of the
        {{param|##.Tunnel.{i}.TunnelEncapsulation}} parameter is
        {{enum|UDP|##.Tunnel.{i}.TunnelEncapsulation}}.
      </description>

      <parameter name="SourcePort" access="readWrite">
        <description>
          The source (local) port used to transmit PDUs. A value of 0 indicates
          that the port selection is performed by the device.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="65535"/>
          </unsignedInt>
          <default type="object" value="1701"/>
        </syntax>
      </parameter>

      <parameter name="RemotePort" access="readWrite">
        <description>
          The remote port used to by the remote endpoint to transmit PDUs.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="65535"/>
          </unsignedInt>
          <default type="object" value="1701"/>
        </syntax>
      </parameter>

      <parameter name="EnableChecksum" access="readWrite">
        <description>
          Enables or disables checksum processing.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.L2TPv3.Tunnel.{i}.Stats." access="readOnly"
        minEntries="1" maxEntries="1" version="2.12">
      <description>
        Statistics for this L2TPv3 tunnel, i.e. all traffic that has passed
        through the tunnel.

        The device MUST reset the tunnel's Stats parameters (unless otherwise
        stated in individual object or parameter descriptions) either when the
        tunnel becomes operationally down due to a previous administrative down
        (i.e., Status parameter transitions to a disabled state after the
        tunnel has been disabled) or when the tunnel becomes administratively
        up (i.e. the Enable parameter transitioned from {{false}} to {{true}}).
      </description>

      <parameter name="KeepAliveSent" access="readOnly">
        <description>
          The total number of KeepAlive {{units}} sent out the tunnel.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="messages"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="KeepAliveReceived" access="readOnly">
        <description>
          The total number of KeepAlive {{units}} received by the tunnel.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="messages"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BytesSent" access="readOnly">
        <description>
          The total number of {{units}} sent by the tunnel.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" access="readOnly">
        <description>
          The total number of {{units}} received by the tunnel.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" access="readOnly">
        <description>
          The total number of {{units}} sent by the tunnel.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" access="readOnly">
        <description>
          The total number of {{units}} received by the tunnel.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" access="readOnly">
        <description>
          The total number of {{units}} discarded by the tunnel due to any
          error. This can include packets dropped due to a lack of transmit
          buffers.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" access="readOnly">
        <description>
          The total number of {{units}} received by the tunnel that contained
          errors preventing them from being delivered to a higher-layer
          protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>
    </object>

    <object name="Device.L2TPv3.Filter.{i}." access="readWrite"
        numEntriesParameter="FilterNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.12">
      <description>
        L2TPv3 Filter table. Entries in this table are applied against the
        packets that are to be encapsulated within the L2TPv3 Tunnel based on
        the following conditions:

        * If the value of the {{param|AllInterfaces}} is {{true}}, then this
          entry will be applied to all {{object|#.Tunnel}} and
          {{object|#.Tunnel.{i}.Interface}} instances.

        * If the value of {{param|AllInterfaces}} is {{false}} and the value of
          {{param|Interface}} parameter is a reference to a row in the
          {{object|#.Tunnel}} table then this entry is applied to all
          {{object|#.Tunnel.{i}.Interface}} instances of the
          {{object|#.Tunnel}} reference.

        * If the value of {{param|AllInterfaces}} is {{false}} and the value of
          {{param|Interface}} parameter is a reference to a row in the
          {{object|#.Tunnel.{i}.Interface}} table then this entry is applied to
          the {{object|#.Tunnel.{i}.Interface}} reference.

        * If no entries are matched for the packet, then the default treatment
          (e.g., {{param|#.Tunnel.{i}.DefaultDSCPMark}}) is applied to the
          packet.

        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 filter.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The status of this filter. {{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>
          {{datatype|expand}}

          For each packet, the highest ordered entry that matches the filter
          criteria is applied. All lower order entries are ignored.
        </description>
        <syntax>
          <dataType ref="Order"/>
        </syntax>
      </parameter>

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

      <parameter name="Interface" access="readWrite">
        <description>
          Filter criterion. {{reference}}
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef
                refType="strong"
                targetType="row"
                targetParent="
                  #.Tunnel.
                  #.Tunnel.{i}.Interface."/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="AllInterfaces" access="readWrite">
        <description>
          Filter criterion. This specifies that all ingress L2TPv3 tunnel
          interfaces are associated with the entry. If {{true}}, the value of
          {{param|Interface}} is ignored since all ingress L2TPv3 tunnel
          interfaces are indicated.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="VLANIDCheck" access="readWrite">
        <description>
          Filter criterion.

          Current outer Ethernet VLAN ID as defined in 802.1Q. A value of -1
          indicates this criterion is not used for filtering.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="VLANIDExclude" access="readWrite">
        <description>
          If {{false}}, the filter includes only those packets that match the
          {{param|VLANIDCheck}} entry, if specified.

          If {{true}}, the filter 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="DSCPMarkPolicy" access="readWrite">
        <description>
          DSCP with which to mark the outer IP header for traffic that is
          associated with the interface criterion.

          Automatic DSCP marking behavior is a local matter to the device,
          possibly influenced by other Broadband Forum standards that it
          supports.

          * A value of -1 indicates copy from the upstream packet.

          * A value of -2 indicates automatic marking of DSCP.
        </description>
        <syntax>
          <int>
            <range minInclusive="-2" maxInclusive="63"/>
          </int>
        </syntax>
      </parameter>
    </object>

    <object name="Device.VXLAN." access="readOnly" minEntries="1"
        maxEntries="1" version="2.12">
      <description>
        This object contains parameters associated with the configuration and
        monitoring of stateless tunnels using the Virtual eXtensible Local Area
        Network (VXLAN) ({{bibref|RFC7348}}).

        This object also provides a means to treat packets that are
        encapsulated within a VXLAN Tunnel by using a set of {{object|Filter}}
        objects to determine the treatment of the packet.
      </description>

      <parameter name="TunnelNumberOfEntries" 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.VXLAN.Tunnel.{i}." access="readWrite" minEntries="0"
        maxEntries="unbounded" numEntriesParameter="TunnelNumberOfEntries"
        version="2.12">
      <description>
        VXLAN Tunnel table, models the VXLAN Tunnel instance and represents the
        entry point and exit point of the tunnel in relation to the WAN
        interface.

        A {{object}} object has one or more {{object|Interface}} objects that
        further define the sessions or flows within the tunnel.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="Status" access="readOnly">
        <description>
          The current operational state of the tunnel.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Enabled"/>
            <enumeration value="Error" optional="true"/>
          </string>
        </syntax>
      </parameter>

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

      <parameter name="RemoteEndpoints" access="readWrite">
        <description>
          The Fully Qualified Domain Name (FQDN) or IP address of the remote
          VXLAN tunnel endpoint.

          If more than one name/address is supplied, they will be tried in
          turn, i.e. they are in decreasing order of precedence.
        </description>
        <syntax>
          <list maxItems="4"/>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="KeepAlivePolicy" access="readWrite">
        <description>
          The mechanism used to keep the tunnel from timing out at the
          {{param|ConnectedRemoteEndpoint}}.
        </description>
        <syntax>
          <string>
            <enumeration value="ICMP">
              <description>
                The version of the ICMP packet used for this {{param}} is based
                on the value of the {{param|DeliveryHeaderProtocol}} parameter
                (Either ICMP for IPv4 or ICMPv6 for IPv6).
              </description>
            </enumeration>
            <enumeration value="None"/>
          </string>
          <default type="object" value="None"/>
        </syntax>
      </parameter>

      <parameter name="KeepAliveTimeout" access="readWrite">
        <description>
          The tunnel keepalive timeout in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="10"/>
        </syntax>
      </parameter>

      <parameter name="KeepAliveThreshold" access="readWrite">
        <description>
          Number of KeepAlive messages unacknowledged by the
          {{param|ConnectedRemoteEndpoint}} before the {{object}} is perceived
          failed.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="3"/>
        </syntax>
      </parameter>

      <parameter name="DeliveryHeaderProtocol" access="readWrite">
        <description>
          The protocol used for the delivery header.
        </description>
        <syntax>
          <string>
            <enumeration value="IPv4"/>
            <enumeration value="IPv6"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="DefaultDSCPMark" access="readWrite">
        <description>
          If the specified entries in the {{object|#.Filter}} table do not
          match this {{object}} object or an instance of the
          {{object|Interface}} object for this {{object}} object, then the
          value of this parameter is applied to the delivery header of the
          packets in this {{object}}.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="ConnectedRemoteEndpoint" access="readOnly">
        <description>
          The Fully Qualified Domain Name (FQDN) name or IP address of the
          connected remote VXLAN tunnel endpoint.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

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

      <parameter name="SourcePort" access="readWrite">
        <description>
          The source (local) port used to transmit PDUs. A value of 0 indicates
          that the port selection is performed by the device. In such case, it
          is recommended that the UDP source port number be calculated using a
          hash of fields from the inner packet and that it is in the
          dynamic/private port range 49152-65535.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="65535"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="RemotePort" access="readWrite">
        <description>
          The remote port used to by the remote endpoint to transmit PDUs. The
          well-known port allocated by IANA is 4789, but it should be
          configurable.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="65535"/>
          </unsignedInt>
          <default type="object" value="4789"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.VXLAN.Tunnel.{i}.Interface.{i}." access="readWrite"
        numEntriesParameter="InterfaceNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.12">
      <description>
        VXLAN Interface table (a stackable interface object as described in
        {{bibref|TR-181i2|Section 4.2}}).

        The {{object}} object models the VXLAN Header as defined in
        {{bibref|RFC7348}} for the transport of L2 frames across over VXLAN.

        The {{object}} object provides a way to discriminate how multiple LAN
        segments are encapsulated within the VXLAN Tunnel.

        In addition the {{object}} object represents the entry point and exit
        point of the tunnel in relation to the LAN 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">
        <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" version="2.12">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name">
        <description>
          The textual name of the interface as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" 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="VNI" access="readWrite">
        <description>
          The unique Virtual Network Identifier (VNI) to be used in the VXLAN
          header of the tunnel.

          A VNI with a value of -1 indicates that the CPE is to generate the
          VNI for this {{object}} instance.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="-1"/>
            <range minInclusive="0" maxInclusive="16777215"/>
          </int>
          <default type="object" value="1"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.VXLAN.Tunnel.{i}.Interface.{i}.Stats." minEntries="1"
        maxEntries="1" version="2.12">
      <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="Reset" access="readWrite" version="2.19">
        <description>
          Set this to {{true}} to reset all this object's statistics counters
          to zero.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BytesSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface,
          including framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface, including
          framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} that could not be transmitted
          because of errors.

          This can include packets dropped due to a lack of transmit buffers.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} that contained errors
          preventing them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="ErrorsReceived" version="2.19">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" activeNotify="canDeny"
          version="2.19">
        <description>
          The total number of outbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" activeNotify="canDeny"
          version="2.19">
        <description>
          The total number of inbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="DiscardPacketsReceived" version="2.19">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsReceived" activeNotify="canDeny"
          version="2.19">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were not addressed to a multicast or broadcast
          address at this layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsReceived" activeNotify="canDeny"
          version="2.19">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a multicast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsSent" activeNotify="canDeny"
          version="2.19">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsReceived" activeNotify="canDeny"
          version="2.19">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a broadcast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnknownProtoPacketsReceived" activeNotify="canDeny"
          version="2.19">
        <description>
          The total number of {{units}} received via the interface which were
          discarded because of an unknown or unsupported protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardChecksumReceived" access="readOnly">
        <description>
          The total number of {{units}} received by the tunnel interface that
          are discarded because of Checksum errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardSequenceNumberReceived" access="readOnly">
        <description>
          The total number of {{units}} received by the tunnel interface that
          are discarded because of Sequence Number errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>
    </object>

    <object name="Device.VXLAN.Tunnel.{i}.Stats." access="readOnly"
        minEntries="1" maxEntries="1" version="2.12">
      <description>
        Statistics for this VXLAN tunnel, i.e. all traffic that has passed
        through the tunnel.

        The device MUST reset the tunnel's Stats parameters (unless otherwise
        stated in individual object or parameter descriptions) either when the
        tunnel becomes operationally down due to a previous administrative down
        (i.e., Status parameter transitions to a disabled state after the
        tunnel has been disabled) or when the tunnel becomes administratively
        up (i.e. the Enable parameter transitioned from {{false}} to {{true}}).
      </description>

      <parameter name="KeepAliveSent" access="readOnly">
        <description>
          The total number of KeepAlive {{units}} sent out the tunnel.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="messages"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="KeepAliveReceived" access="readOnly">
        <description>
          The total number of KeepAlive {{units}} received by the tunnel.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="messages"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BytesSent" access="readOnly">
        <description>
          The total number of {{units}} sent by the tunnel.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" access="readOnly">
        <description>
          The total number of {{units}} received by the tunnel.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" access="readOnly">
        <description>
          The total number of {{units}} sent by the tunnel.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" access="readOnly">
        <description>
          The total number of {{units}} received by the tunnel.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" access="readOnly">
        <description>
          The total number of {{units}} discarded by the tunnel due to any
          error. This can include packets dropped due to a lack of transmit
          buffers.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" access="readOnly">
        <description>
          The total number of {{units}} received by the tunnel that contained
          errors preventing them from being delivered to a higher-layer
          protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>
    </object>

    <object name="Device.VXLAN.Filter.{i}." access="readWrite"
        numEntriesParameter="FilterNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.12">
      <description>
        VXLAN Filter table. Entries in this table are applied against the
        packets that are to be encapsulated within the VXLAN Tunnel based on
        the following conditions:

        * If the value of the {{param|AllInterfaces}} is {{true}}, then this
          entry will be applied to all {{object|#.Tunnel}} and
          {{object|#.Tunnel.{i}.Interface}} instances.

        * If the value of {{param|AllInterfaces}} is {{false}} and the value of
          {{param|Interface}} parameter is a reference to a row in the
          {{object|#.Tunnel}} table then this entry is applied to all
          {{object|#.Tunnel.{i}.Interface}} instances of the
          {{object|#.Tunnel}} reference.

        * If the value of {{param|AllInterfaces}} is {{false}} and the value of
          {{param|Interface}} parameter is a reference to a row in the
          {{object|#.Tunnel.{i}.Interface}} table then this entry is applied to
          the {{object|#.Tunnel.{i}.Interface}} reference.

        * If no entries are matched for the packet, then the default treatment
          (e.g., {{param|#.Tunnel.{i}.DefaultDSCPMark}}) is applied to the
          packet.

        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 filter.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The status of this filter. {{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>
          {{datatype|expand}}

          For each packet, the highest ordered entry that matches the filter
          criteria is applied. All lower order entries are ignored.
        </description>
        <syntax>
          <dataType ref="Order"/>
        </syntax>
      </parameter>

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

      <parameter name="Interface" access="readWrite">
        <description>
          Filter criterion. {{reference}}
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef
                refType="strong"
                targetType="row"
                targetParent="
                  #.Tunnel.
                  #.Tunnel.{i}.Interface."/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="AllInterfaces" access="readWrite">
        <description>
          Filter criterion. This specifies that all ingress VXLAN tunnel
          interfaces are associated with the entry. If {{true}}, the value of
          {{param|Interface}} is ignored since all ingress VXLAN tunnel
          interfaces are indicated.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="VLANIDCheck" access="readWrite">
        <description>
          Filter criterion.

          Current outer Ethernet VLAN ID as defined in 802.1Q. A value of -1
          indicates this criterion is not used for filtering.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="VLANIDExclude" access="readWrite">
        <description>
          If {{false}}, the filter includes only those packets that match the
          {{param|VLANIDCheck}} entry, if specified.

          If {{true}}, the filter 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="DSCPMarkPolicy" access="readWrite">
        <description>
          DSCP with which to mark the outer IP header for traffic that is
          associated with the interface criterion.

          Automatic DSCP marking behavior is a local matter to the device,
          possibly influenced by other Broadband Forum standards that it
          supports.

          * A value of -1 indicates copy from the upstream packet.

          * A value of -2 indicates automatic marking of DSCP.
        </description>
        <syntax>
          <int>
            <range minInclusive="-2" maxInclusive="63"/>
          </int>
        </syntax>
      </parameter>
    </object>

    <object name="Device.MAP." access="readOnly" minEntries="1" maxEntries="1"
        version="2.8">
      <description>
        The Mapping of Address and Port (MAP) object {{bibref|RFC7597}}
        {{bibref|RFC7599}} {{bibref|RFC7598}}. This object applies only to
        gateway devices that support IPv4 on the LAN side, include a
        {{object|#.NAT}}, and typically have only IPv6 connectivity on the WAN
        side.

        See the MAP Theory of Operation {{bibref|TR-181i2|Appendix XV}} for a
        description of the working of this MAP data model.
      </description>

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

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

    <object name="Device.MAP.Domain.{i}." access="readWrite"
        numEntriesParameter="DomainNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.8">
      <description>
        MAP domain settings {{bibref|RFC7597}} {{bibref|RFC7599}}. Each
        instance models a MAP domain.

        MAP supports two transport modes, both of which use NAPT44 (modified to
        use a restricted port range):

        * MAP-E ({{param|TransportMode}} =
          {{enum|Encapsulation|TransportMode}}) uses an IPv4-in-IPv6 tunnel.

        * MAP-T ({{param|TransportMode}} = {{enum|Translation|TransportMode}})
          uses stateless NAT64.

        Note: There is an n:1 relationship between a MAP domain and the
        associated {{param|WANInterface}}, i.e. in theory multiple MAP domains
        can be associated with a single WAN IP interface (each domain would
        have its own ''End-user IPv6 prefix'' and ''MAP IPv6 address'').

        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 set {{param|Status}} to {{enum|Error_Misconfigured|Status}} and
        disable the offending {{object}} row.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="WANInterface"/>
        <parameter ref="IPv6Prefix"/>
      </uniqueKey>

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

      <parameter name="Status" access="readOnly">
        <description>
          The current operational state of the MAP domain.

          The {{enum|Error_Misconfigured}} value indicates that a necessary
          configuration value is undefined or invalid.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Enabled"/>
            <enumeration value="Error_Misconfigured" optional="true"/>
            <enumeration value="Error" optional="true"/>
          </string>
        </syntax>
      </parameter>

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

      <parameter name="TransportMode" access="readWrite">
        <description>
          The transport mode to use.

          Corresponds to the {{bibref|RFC7598}} ''S46_CONT_MAPE'' and
          ''S46_CONT_MAPT'' container options.
        </description>
        <syntax>
          <string>
            <enumeration value="Encapsulation">
              <description>MAP-E {{bibref|RFC7597}}</description>
            </enumeration>
            <enumeration value="Translation">
              <description>MAP-T {{bibref|RFC7599}}</description>
            </enumeration>
          </string>
          <default type="object" value="Translation"/>
        </syntax>
      </parameter>

      <parameter name="WANInterface" access="readWrite">
        <description>
          The IP interface with which this MAP domain is associated. This will
          always be a NAT-ted upstream (WAN) interface.

          The ''End-user IPv6 prefix'' {{param|IPv6Prefix}} is one of this IP
          interface's prefixes.

          The ''MAP IPv6 address'' is derived from the ''End-user IPv6 prefix''
          and is one of this IP interface's IP addresses, with an
          {{param|##.IP.Interface.{i}.IPv6Address.{i}.Origin}} of
          {{enum|MAP|##.IP.Interface.{i}.IPv6Address.{i}.Origin}}.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="##.IP.Interface."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="IPv6Prefix" access="readWrite">
        <description>
          The MAP domain's ''End-user IPv6 prefix''. This MUST reference one of
          {{param|WANInterface}}'s prefixes.

          If the Controller configures this prefix directly, the CPE MUST use
          the Controller-configured prefix. Otherwise, the CPE MUST select one
          of {{param|WANInterface}}'s prefixes; the selected prefix will
          typically have {{param|##.IP.Interface.{i}.IPv6Prefix.{i}.Origin}} =
          {{enum|PrefixDelegation|##.IP.Interface.{i}.IPv6Prefix.{i}.Origin}}.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong"
                targetParent="##.IP.Interface.{i}.IPv6Prefix." targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="BRIPv6Prefix" access="readWrite">
        <description>
          The MAP Border Relay (BR) address or prefix.

          * For MAP-E this is the BR address and therefore MUST be a /128
            {{bibref|RFC7597}}. Note this address can be an IPv6 anycast
            address. This address corresponds to the {{bibref|RFC7598}}
            ''OPTION_S46_BR'' (Border Relay) option.

          * For MAP-T this is the BR prefix {{bibref|RFC7599}}. This address
            prefix corresponds to the {{bibref|RFC7598}} ''OPTION_S46_DMR''
            (Default Mapping Rule) option.

          Note: There will be a corresponding
          {{object|##.Routing.Router.{i}.IPv4Forwarding}} default rule.
        </description>
        <syntax>
          <dataType ref="IPv6Prefix"/>
        </syntax>
      </parameter>

      <parameter name="DSCPMarkPolicy" access="readWrite">
        <description>
          DSCP with which to mark the outer IP header for traffic that is
          associated with this MAP domain.

          Downstream packets are never re-marked.

          Automatic DSCP marking behavior is a local matter to the device,
          possibly influenced by other Broadband Forum standards that it
          supports.

          * A value of -1 indicates copy from the incoming packet.

          * A value of -2 indicates automatic marking of DSCP.
        </description>
        <syntax>
          <int>
            <range minInclusive="-2" maxInclusive="63"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="PSIDOffset" access="readWrite" status="deleted">
        <description>
          ''Port-set ID'' (PSID) offset in {{units}}. The number of Port-sets
          is 2^{{param}}^.

          Corresponds to the {{bibref|RFC7598}} ''S46_PORTPARAMS'' (Port
          Parameters) option's ''offset'' field.

          {{deprecated|2.12|because details changed between drafting this data
          model and the RFC being published. This parameter has been moved to
          the proper location within the {{object|Rule.{i}.}} object}}

          {{obsoleted|2.14-2.17}}

          {{deleted|2.18}}
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="15"/>
            <units value="bits"/>
          </unsignedInt>
          <default type="object" value="6"/>
        </syntax>
      </parameter>

      <parameter name="PSIDLength" access="readWrite" status="deleted">
        <description>
          The length in {{units}} of the ''Port-set id'' (PSID) configured in
          the {{param|PSID}} parameter.

          Corresponds to the {{bibref|RFC7598}} ''S46_PORTPARAMS'' (Port
          Parameters) option's ''PSID-len'' field.

          {{deprecated|2.12|because details changed between drafting this data
          model and the RFC being published. This parameter has been moved to
          the proper location within the {{object|Rule.{i}.}} object}}

          {{obsoleted|2.14-2.17}}

          {{deleted|2.18}}
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="16"/>
            <units value="bits"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="PSID" access="readWrite" status="deleted">
        <description>
          ''Port-set ID'' (PSID) to use in preference to the value extracted
          from the ''Embedded Address'' (EA) bits.

          Only the high order {{param|PSIDLength}} bits of the {{param}} value
          are used, so the parameter is ignored when {{param|PSIDLength}} is
          zero.

          Corresponds to the {{bibref|RFC7598}} ''S46_PORTPARAMS'' (Port
          Parameters) option's ''PSID'' field.

          {{deprecated|2.12|because details changed between drafting this data
          model and the RFC being published. This parameter has been moved to
          the proper location within the {{object|Rule.{i}.}} object}}

          {{obsoleted|2.14-2.17}}

          {{deleted|2.18}}
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="IncludeSystemPorts" access="readWrite" status="deleted">
        <description>
          Whether to include low-numbered (system) ports in the Port-sets.
          Normally ports in the range
          [0:2^(16-{{param|PSIDOffset|deleted}})^-1] are excluded, e.g. for the
          default {{param|PSIDOffset|deleted}} value of 6, ports [0:1023] are
          not included in the Port-sets.

          This parameter is related to {{bibref|RFC7597}}'s ''N'', which is
          defined as ''the number of ports (e.g., 1024) excluded from the lower
          end of the range''. The parameter is relevant only when
          {{param|PSIDOffset|deleted}} is 0; {{false}} corresponds to
          ''N=1024'' and {{true}} corresponds to ''N=0''.

          {{deprecated|2.15|because details changed between drafting this data
          model and the RFC being published. This parameter has been moved to
          the proper location within the {{object|Rule.{i}.}} object}}

          {{obsoleted|2.17}}

          {{deleted|2.18}}
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

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

    <object name="Device.MAP.Domain.{i}.Interface." version="2.8">
      <description>
        MAP interface (a stackable interface object as described in
        {{bibref|TR-181i2|Section 4.2}}). This models the LAN side MAP domain
        interface.
      </description>

      <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">
        <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" version="2.8"
          status="deprecated">
        <description>
          {{datatype|expand}}

          {{deprecated|2.18|because {{object|#}} already has an Alias
          parameter.}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name">
        <description>
          The textual name of the interface as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" 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 this interface object is a MAP domain interface, it is
          expected that {{param}} will not be used.
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string>
            <pathRef refType="strong" targetType="row"/>
          </string>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.MAP.Domain.{i}.Interface.Stats." minEntries="1"
        maxEntries="1" version="2.8">
      <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="Reset" access="readWrite" version="2.19">
        <description>
          Set this to {{true}} to reset all this object's statistics counters
          to zero.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BytesSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface,
          including framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface, including
          framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} that could not be transmitted
          because of errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} that contained errors
          preventing them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="ErrorsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="DiscardPacketsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were not addressed to a multicast or broadcast
          address at this layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a multicast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

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

          Note that IPv6 does not define broadcast addresses, so IPv6 {{units}}
          will never cause this counter to increment.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a broadcast address at this
          layer.

          Note that IPv6 does not define broadcast addresses, so IPv6 {{units}}
          will never cause this counter to increment.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnknownProtoPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received via the interface which were
          discarded because of an unknown or unsupported protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>
    </object>

    <object name="Device.MAP.Domain.{i}.Rule.{i}." access="readWrite"
        numEntriesParameter="RuleNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.8">
      <description>
        The MAP domain's Mapping Rules {{bibref|RFC7597}}. The rule with the
        longest match between its {{param|IPv6Prefix}} and the end-user
        {{param|#.IPv6Prefix}} is the Basic Mapping Rule (BMR). Any of the
        rules (including the BMR) can be a Forwarding Mapping Rule.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="IPv6Prefix"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="IPv4Prefix"/>
      </uniqueKey>

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

      <parameter name="Status" access="readOnly">
        <description>
          The status of this {{object}} instance. {{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" version="2.8">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Origin" access="readOnly">
        <description>
          The mechanism via which the {{object}} was created.

          If the CPE supports MAP configuration via both DHCPv6 and CWMP, it is
          up to the implementation to determine how the two mechanisms will
          interact.
        </description>
        <syntax>
          <string>
            <enumeration value="DHCPv6">
              <description>
                Created via a {{bibref|RFC7598}} ''S46_RULE'' option.
              </description>
            </enumeration>
            <enumeration value="Static">
              <description>
                Present in the factory default configuration, created by the
                Controller, or created by some other management entity (e.g.
                via a GUI)
              </description>
            </enumeration>
          </string>
          <default type="object" value="Static"/>
        </syntax>
      </parameter>

      <parameter name="IPv6Prefix" access="readWrite">
        <description>
          The ''Rule IPv6 prefix''.

          The Rule IPv6 prefix is a leading part of the end-user
          {{param|#.IPv6Prefix}}, i.e. its length MUST be less than or equal to
          the length of the end-user ''IPv6Prefix'', and it MUST match the
          end-user ''IPv6Prefix''.

          Corresponds to the {{bibref|RFC7598}} ''S46_RULE'' option's
          ''ipv6-prefix'' field.
        </description>
        <syntax>
          <dataType ref="IPv6Prefix"/>
          <default type="object" value="/0"/>
        </syntax>
      </parameter>

      <parameter name="IPv4Prefix" access="readWrite">
        <description>
          The ''Rule IPv4 prefix''.

          Corresponds to the {{bibref|RFC7598}} ''S46_RULE'' option's
          ''ipv4-prefix'' field.
        </description>
        <syntax>
          <dataType ref="IPv4Prefix"/>
          <default type="object" value="/0"/>
        </syntax>
      </parameter>

      <parameter name="EABitsLength" access="readWrite">
        <description>
          The length in {{units}} of the ''Embedded Address (EA) bits'' in the
          end-user {{param|#.IPv6Prefix}}.

          Corresponds to the {{bibref|RFC7598}} ''S46_RULE'' option's
          ''ea-len'' field.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="48"/>
            <units value="bits"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="IsFMR" access="readWrite">
        <description>
          Indicates whether this rule is a ''Forwarding Mapping Rule'' (FMR),
          i.e. can be used for forwarding.

          Corresponds to the {{bibref|RFC7598}} ''S46_RULE'' option's ''flags''
          field's ''F-Flag''.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="PSIDOffset" access="readWrite" version="2.12">
        <description>
          ''Port-set ID'' (PSID) offset in {{units}}. The number of Port-sets
          is 2^{{param}}^.

          Corresponds to the {{bibref|RFC7598}} ''S46_PORTPARAMS'' (Port
          Parameters) option's ''offset'' field.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="15"/>
            <units value="bits"/>
          </unsignedInt>
          <default type="object" value="6"/>
        </syntax>
      </parameter>

      <parameter name="PSIDLength" access="readWrite" version="2.12">
        <description>
          The length in {{units}} of the ''Port-set id'' (PSID) configured in
          the {{param|PSID}} parameter.

          Corresponds to the {{bibref|RFC7598}} ''S46_PORTPARAMS'' (Port
          Parameters) option's ''PSID-len'' field.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="16"/>
            <units value="bits"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="PSID" access="readWrite" version="2.12">
        <description>
          ''Port-set ID'' (PSID) to use in preference to the value extracted
          from the ''Embedded Address'' (EA) bits.

          Only the high order {{param|PSIDLength}} bits of the {{param}} value
          are used, so the parameter is ignored when {{param|PSIDLength}} is
          zero.

          Corresponds to the {{bibref|RFC7598}} ''S46_PORTPARAMS'' (Port
          Parameters) option's ''PSID'' field.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="IncludeSystemPorts" access="readWrite" version="2.15">
        <description>
          Whether to include low-numbered (system) ports in the Port-sets.
          Normally ports in the range [0:2^(16-{{param|PSIDOffset}})^-1] are
          excluded, e.g. for the default {{param|PSIDOffset}} value of 6, ports
          [0:1023] are not included in the Port-sets.

          This parameter is related to {{bibref|RFC7597}}'s ''N'', which is
          defined as ''the number of ports (e.g., 1024) excluded from the lower
          end of the range''. The parameter is relevant only when
          {{param|PSIDOffset}} is 0; {{false}} corresponds to ''N=1024'' and
          {{true}} corresponds to ''N=0''.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.CaptivePortal." access="readOnly" minEntries="1"
        maxEntries="1" version="2.0">
      <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 Fully Qualified Domain Names (FQDNs) or
          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 FQDN, 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 maxItems="10000">
            <size/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="URL" access="readWrite">
        <description>
          Captive portal {{datatype}} 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>
          <dataType ref="URL"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Routing." access="readOnly" minEntries="1"
        maxEntries="1" version="2.0">
      <description>
        Routing object that contains the {{object|Router}} table, the received
        router advertisement information {{object|RouteInformation}},
        {{object|Babel}}, and {{object|RIP}} protocol objects.
      </description>

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

    <object name="Device.Routing.Router.{i}." access="readWrite"
        numEntriesParameter="RouterNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.0">
      <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" version="2.0">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

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

      <parameter name="IPv6ForwardingNumberOfEntries" access="readOnly"
          version="2.2">
        <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"
        version="2.0">
      <description>
        Layer 3 IPv4 forwarding table.

        In addition to statically configured routes, this table MUST include
        dynamic routes learned through layer 3 routing protocols, including RIP
        (i.e. RIP version 2), OSPF, DHCPv4, 3GPP-NAS (3GPP Non Access Stratum)
        and IPCP. The CPE MAY reject attempts to delete or modify a dynamic
        route entry.

        For each incoming packet, the layer 3 forwarding decision is
        conceptually made as follows:

        * Only enabled table entries with a matching {{param|ForwardingPolicy}}
          are considered, i.e. those that either do not specify a
          {{param|ForwardingPolicy}}, or else specify a
          {{param|ForwardingPolicy}} that matches that of the incoming packet.

        * Next, table entries that also have a matching destination
          address/mask are considered, and the matching entry with the longest
          prefix is applied to the packet (i.e. the entry with the most
          specific network). An unspecified destination address is a wild-card
          and always matches, but with a prefix length of zero.

        For enabled table entries, if {{param|Interface}} is not a valid
        reference to an IPv4-capable interface (that is attached to the IPv4
        stack), then the table entry is inoperable and the CPE MUST set
        {{param|Status}} to {{enum|Error_Misconfigured|Status}}.

        Note: The {{object}} table includes a unique key parameter that is a
        strong reference. If a strongly referenced object is deleted, the CPE
        will set the referencing parameter to {{empty}}. However, doing so
        under these circumstances might cause the updated {{object}} row to
        then violate the table's unique key constraint; if this occurs, the CPE
        MUST disable the offending {{object}} row.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="DestIPAddress"/>
        <parameter ref="DestSubnetMask"/>
        <parameter ref="ForwardingPolicy"/>
        <parameter ref="GatewayIPAddress"/>
        <parameter ref="Interface"/>
        <parameter ref="ForwardingMetric"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the forwarding entry. On creation, an entry is
          disabled by default.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          Indicates the status of the forwarding entry. {{enum}}

          The {{enum|Error}} value MAY be used by the CPE to indicate a locally
          defined error condition.

          The {{enum|Error_Misconfigured}} value indicates that a necessary
          configuration value is undefined or invalid.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Enabled"/>
            <enumeration value="Error_Misconfigured"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

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

      <parameter name="Type" access="readWrite" version="2.16">
        <description>
          Specifies the forwarding entry type. Based on {{bibref|RFC8349}}
        </description>
        <syntax>
          <string>
            <enumeration value="Normal">
              <description>
                The packet will be sent to the next hop.
              </description>
            </enumeration>
            <enumeration value="Receive">
              <description>
                The packet will be received by the local system.
              </description>
            </enumeration>
            <enumeration value="Blackhole">
              <description>
                The specified destinations are considered unreachable. Packets
                are silently discarded.
              </description>
            </enumeration>
            <enumeration value="Unreachable">
              <description>
                The specified destinations are considered unreachable. Packets
                are discarded and an ICMP message "host unreachable message" is
                sent.
              </description>
            </enumeration>
            <enumeration value="Prohibit">
              <description>
                The specified destinations are considered unreachable. Packets
                are discarded and an ICMP message "communication
                administratively prohibited" is sent.
              </description>
            </enumeration>
          </string>
          <default type="object" value="Normal"/>
        </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|###.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" targetParent="###.IP.Interface."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Origin" access="readOnly" version="2.2">
        <description>
          Protocol via which the IPv4 forwarding rule was learned. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="DHCPv4"/>
            <enumeration value="OSPF"/>
            <enumeration value="IPCP"/>
            <enumeration value="RIP"/>
            <enumeration value="3GPP-NAS" version="2.18">
              <description>
                Assigned by the core network (fixed or cellular) using 3GPP NAS
                signalling methods. e.g. PDU Session Establishment Request, PDN
                Connectivity Request, PDP Context Activation Request, ... This
                information is available from the AT commands
                {{bibref|3GPP-TS.27.007|Clause 10.1.23}} PDP context read
                dynamic parameters +CGCONTRDP.
              </description>
            </enumeration>
            <enumeration value="Static">
              <description>
                For example, present in the factory default configuration,
                created by the Controller, or created by some other management
                entity (e.g. via a GUI).
              </description>
            </enumeration>
          </string>
          <default type="object" value="Static"/>
        </syntax>
      </parameter>

      <parameter name="ForwardingMetric" access="readWrite">
        <description>
          Forwarding metric. A value of -1 indicates this metric is not used.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Routing.Router.{i}.IPv6Forwarding.{i}."
        access="readWrite" numEntriesParameter="IPv6ForwardingNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded"
        version="2.2">
      <description>
        Layer 3 IPv6 forwarding table.

        In addition to statically configured routes, this table MUST include
        dynamic routes learned through layer 3 routing protocols, including
        RIPng, OSPF, DHCPv6, 3GPP-NAS, and RA. The CPE MAY reject attempts to
        delete or modify a dynamic route entry.

        For each incoming packet, the layer 3 forwarding decision is
        conceptually made as follows:

        * Only enabled table entries with a matching {{param|ForwardingPolicy}}
          are considered, i.e. those that either do not specify a
          {{param|ForwardingPolicy}}, or else specify a
          {{param|ForwardingPolicy}} that matches that of the incoming packet.

        * Next, table entries that also have a matching destination prefix are
          considered, and the matching entry with the longest prefix length is
          applied to the packet (i.e. the entry with the most specific
          network). An unspecified destination address is a wild-card and
          always matches, but with a prefix length of zero.

        For enabled table entries, if {{param|Interface}} is not a valid
        reference to an IPv6-capable interface (that is attached to the IPv6
        stack), then the table entry is inoperable and the CPE MUST set
        {{param|Status}} to {{enum|Error_Misconfigured|Status}}.

        This object is based on ''inetCidrRouteTable'' from {{bibref|RFC4292}}.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="DestIPPrefix"/>
        <parameter ref="ForwardingPolicy"/>
        <parameter ref="NextHop"/>
        <parameter ref="Interface"/>
        <parameter ref="ForwardingMetric"/>
      </uniqueKey>

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

      <parameter name="Status" access="readOnly">
        <description>
          Indicates the status of the forwarding entry. {{enum}}

          The {{enum|Error_Misconfigured}} value indicates that a necessary
          configuration value is undefined or invalid.

          The {{enum|Error}} value MAY be used by the CPE to indicate a locally
          defined error condition.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Enabled"/>
            <enumeration value="Error_Misconfigured"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

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

      <parameter name="Type" access="readWrite" version="2.16">
        <description>
          Specifies the forwarding entry type. Based on {{bibref|RFC8349}}
        </description>
        <syntax>
          <string>
            <enumeration value="Normal">
              <description>
                The packet will be sent to the next hop.
              </description>
            </enumeration>
            <enumeration value="Receive">
              <description>
                The packet will be received by the local system.
              </description>
            </enumeration>
            <enumeration value="Blackhole">
              <description>
                The specified destinations are considered unreachable. Packets
                are silently discarded.
              </description>
            </enumeration>
            <enumeration value="Unreachable">
              <description>
                The specified destinations are considered unreachable. Packets
                are discarded and an ICMP message "host unreachable message" is
                sent.
              </description>
            </enumeration>
            <enumeration value="Prohibit">
              <description>
                The specified destinations are considered unreachable. Packets
                are discarded and an ICMP message "communication
                administratively prohibited" is sent.
              </description>
            </enumeration>
          </string>
          <default type="object" value="Normal"/>
        </syntax>
      </parameter>

      <parameter name="DestIPPrefix" access="readWrite">
        <description>
          Destination IPv6 prefix. {{empty}} indicates that it matches all
          destination prefixes (i.e. equivalent to "::/0"). All bits to the
          right of the prefix MUST be zero, e.g. 2001:edff:fe6a:f76::/64.

          Routes with a 128-bit prefix length (/128) are host routes for a
          specific IPv6 destination, e.g.
          2001:db8:28:2:713e:a426:d167:37ab/128.
        </description>
        <syntax>
          <dataType ref="IPv6Prefix"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="ForwardingPolicy" access="readWrite">
        <description>
          Identifier of a set of classes or flows that have the corresponding
          {{param}} value as defined in the {{object|###.QoS}} object.

          A value of -1 indicates no {{param}} is specified.

          If specified, this forwarding entry is to apply only to traffic
          associated with the specified classes and flows.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="NextHop" access="readWrite">
        <description>
          IPv6 address of the next hop.

          Only one of {{param}} and {{param|Interface}} SHOULD be configured
          for a route. {{empty}} indicates no {{param}} is specified.

          If both are configured, {{param}} and {{param|Interface}} MUST be
          consistent with each other.
        </description>
        <syntax>
          <dataType ref="IPv6Address"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite">
        <description>
          {{reference}} Specifies the egress layer 3 interface associated with
          this entry. Example: ''Device.IP.Interface.1''.

          Only one of {{param|NextHop}} and {{param}} SHOULD be configured for
          a route. {{empty}} indicates no {{param}} is specified.

          If both are configured, {{param|NextHop}} and {{param}} MUST be
          consistent with each other.

          For a route that was configured by setting {{param|NextHop}} but not
          {{param}}, read access to {{param}} MUST return the full hierarchical
          parameter name for the route's egress interface.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="###.IP.Interface."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Origin" access="readOnly">
        <description>
          Protocol via which the IPv6 forwarding rule was learned. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="DHCPv6"/>
            <enumeration value="OSPF"/>
            <enumeration value="RA">
              <description>
                Router Advertisement Route Information Option
                {{bibref|RFC4191}}.
              </description>
            </enumeration>
            <enumeration value="RIPng">
              <description>RIPng for IPv6 {{bibref|RFC2080}}</description>
            </enumeration>
            <enumeration value="3GPP-NAS" version="2.18">
              <description>
                Address assigned by the core network (fixed or cellular) using
                3GPP NAS signalling methods. e.g. PDU Session Establishment
                Request, PDN Connectivity Request, PDP Context Activation
                Request, ... This information is available from the AT commands
                {{bibref|3GPP-TS.27.007|Clause 10.1.23}} PDP context read
                dynamic parameters +CGCONTRDP.
              </description>
            </enumeration>
            <enumeration value="Static">
              <description>
                For example, present in the factory default configuration,
                created by the Controller, or created by some other management
                entity (e.g. via a GUI).
              </description>
            </enumeration>
          </string>
          <default type="object" value="Static"/>
        </syntax>
      </parameter>

      <parameter name="ForwardingMetric" access="readWrite">
        <description>
          Forwarding metric. A value of -1 indicates this metric is not used.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="ExpirationTime" access="readOnly">
        <description>
          The time at which the route will expire, or {{null}} if not known.
          For an infinite lifetime, the parameter value MUST be
          9999-12-31T23:59:59Z.

          {{param}} is provided by an underlying dynamic routing protocol, e.g.
          by an {{bibref|RFC4191}} route information option.
        </description>
        <syntax>
          <dateTime/>
          <default type="object" value="9999-12-31T23:59:59Z"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Routing.RIP." access="readOnly" minEntries="1"
        maxEntries="1" version="2.0">
      <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"
        version="2.0">
      <description>
        IP Interface RIP configuration table.

        For enabled table entries, if {{param|Interface}} is not a valid
        reference then the table entry is inoperable and the CPE MUST set
        {{param|Status}} to {{enum|Error_Misconfigured|Status}}.

        Note: The {{object}} table includes a unique key parameter that is a
        strong reference. If a strongly referenced object is deleted, the CPE
        will set the referencing parameter to {{empty}}. However, doing so
        under these circumstances might cause the updated {{object}} row to
        then violate the table's unique key constraint; if this occurs, the CPE
        MUST set {{param|Status}} to {{enum|Error_Misconfigured|Status}} and
        disable the offending {{object}} row.

        Note: This object only applies to RIP2; i.e. version 2 of the RIP
        protocol is used to accept or send over the specified
        {{param|Interface}}.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <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" version="2.0">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </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="AcceptRA" access="readWrite">
        <description>
          When set to {{true}}, RIP route advertisements received over
          {{param|Interface}} are accepted.

          When set to {{false}}, RIP route advertisements received over
          {{param|Interface}} are rejected.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="SendRA" access="readWrite">
        <description>
          When set to {{true}}, RIP route advertisements are to be sent over
          {{param|Interface}}.

          When set to {{false}}, no RIP route advertisements will be sent over
          {{param|Interface}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Routing.RouteInformation." access="readOnly"
        minEntries="1" maxEntries="1" version="2.2">
      <description>
        Received Router Advertisement (RA) route information
        {{bibref|RFC4191}}.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables receiving route information from the RA.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

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

    <object name="Device.Routing.RouteInformation.InterfaceSetting.{i}."
        access="readOnly" numEntriesParameter="InterfaceSettingNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.2">
      <description>
        IP Interface RA route information table. Contains received RA route
        information {{bibref|RFC4191}}. As such, the data in this table cannot
        be modified.
      </description>
      <uniqueKey functional="true">
        <parameter ref="Interface"/>
      </uniqueKey>

      <parameter name="Status" access="readOnly">
        <description>
          The status of this entry. {{enum}}

          The {{enum|Error}} value MAY be used by the CPE to indicate a locally
          defined error condition.
        </description>
        <syntax>
          <string>
            <enumeration value="ForwardingEntryCreated"/>
            <enumeration value="NoForwardingEntry"/>
            <enumeration value="Error" optional="true"/>
          </string>
        </syntax>
      </parameter>

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

      <parameter name="SourceRouter" access="readOnly">
        <description>
          IPv6 Address of the router that sent the RA that included this route
          info.
        </description>
        <syntax>
          <dataType ref="IPv6Address"/>
        </syntax>
      </parameter>

      <parameter name="PreferredRouteFlag" access="readOnly">
        <description>
          Flag included in a specific Route Information Option within an RA
          message (Prf flag), as defined in {{bibref|RFC4191|Section 2.3}}.
          {{enum}}

          Note that this is not the Prf flag included in the base RA message.
          Also see {{bibref|RFC4191|Section 2.1}} which discusses how this flag
          is encoded on the wire.
        </description>
        <syntax>
          <string>
            <enumeration value="High"/>
            <enumeration value="Medium"/>
            <enumeration value="Low"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Prefix" access="readOnly">
        <description>
          IPv6 address prefix, as received in an instance of the Route
          Information Option of a RA message.
        </description>
        <syntax>
          <dataType ref="IPv6Prefix"/>
        </syntax>
      </parameter>

      <parameter name="ManagedAddressConfiguration" access="readOnly"
          version="2.16">
        <description>
          When set, it indicates that addresses are available via Dynamic Host
          Configuration Protocol [DHCPv6]. If the {{param}} is set, the
          {{param|OtherConfiguration}} is redundant and can be ignored because
          DHCPv6 will return all available configuration information (see
          {{bibref|RFC4861|Section 4.2}}).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="OtherConfiguration" access="readOnly" version="2.16">
        <description>
          When set, it indicates that other configuration information is
          available via DHCPv6. Examples of such information are DNS-related
          information or information on other servers within the network (see
          {{bibref|RFC4861|Section 4.2}}).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="RouteLifetime" access="readOnly">
        <description>
          The time at which {{param|Prefix}} will cease to be usable for use as
          a forwarding entry, or {{null}} if not known. For an infinite
          lifetime, the parameter value MUST be 9999-12-31T23:59:59Z.

          {{param}} is received in an instance of the Route Information Option
          of a RA message.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="ReachableTime" access="readOnly" version="2.16">
        <description>
          The time, in {{units}}, that a node assumes a neighbor is reachable
          after having received a reachability confirmation. Used by the
          Neighbor Unreachability Detection algorithm {{bibref|RFC4861|see
          Section 7.3}}. A value of zero means unspecified (by this router)
          (see {{bibref|RFC4861|Section 4.2}}).
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="3600000"/>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RetransTimer" access="readOnly" version="2.16">
        <description>
          The time, in {{units}}, between retransmitted Neighbor Solicitation
          messages. Used by address resolution and the Neighbor Unreachability
          Detection algorithm {{bibref|RFC4861|Sections 7.2 and 7.3}}. A value
          of zero means unspecified (by this router) (see
          {{bibref|RFC4861|Section 4.2}}).
        </description>
        <syntax>
          <unsignedInt>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="HomeAgent" access="readOnly" version="2.16">
        <description>
          The Home Agent (H) bit is set in a Router Advertisement to indicate
          that the router sending this Router Advertisement is also functioning
          as a Mobile IPv6 home agent on this link. (see
          {{bibref|RFC3775|Section 7.1}} and {{bibref|RFC4861|Section 4.2}})
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

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

    <object
        name="Device.Routing.RouteInformation.InterfaceSetting.{i}.Option.{i}."
        access="readOnly" numEntriesParameter="OptionNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.16">
      <description>
        This object specifies the received options in a Router Advertisement
        (RA) message {{bibref|RFC4861|Section 4.6}}. This includes support for
        receiving DNS information in the RA message as described in
        {{bibref|RFC6106}}.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="Tag"/>
      </uniqueKey>

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

      <parameter name="Tag" access="readOnly">
        <description>
          Option tag (type) {{bibref|RFC4861|Section 4.6}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Value" access="readOnly">
        <description>
          A hexbinary encoded option value {{bibref|RFC4861|Section 4.6}}.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="0" maxLength="65535"/>
          </hexBinary>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Routing.Babel." access="readOnly" minEntries="1"
        maxEntries="1" version="2.15">
      <description>
        This object provides parameters for configuration, troubleshooting, and
        monitoring of the Babel routing protocol {{bibref|RFC8966}}. This data
        model is based on the Babel information model defined in
        {{bibref|RFC9046}}.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables Babel on the device.
        </description>
        <syntax>
          <boolean/>
        </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 device 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>
        </syntax>
      </parameter>

      <parameter name="ImplementationVersion" access="readOnly">
        <description>
          The name and version of this implementation of the Babel protocol.
          This is not the same as the version of the Babel protocol that has
          been implemented. The method of naming and identifying implementation
          versions will be specific to the implementation.
        </description>
        <syntax>
          <string>
            <size maxLength="32"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SelfRouterID" access="readOnly">
        <description>
          The router-id used by this instance of the Babel protocol to identify
          itself. {{bibref|RFC8966}} describes this as an arbitrary string of 8
          octets.
        </description>
        <syntax>
          <hexBinary/>
        </syntax>
      </parameter>

      <parameter name="SelfSeqno" access="readOnly">
        <description>
          The current sequence number included in route updates for routes
          originated by this node.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SupportedMetricCompAlgorithms" access="readOnly">
        <description>
          Supported cost computation algorithms.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="2-out-of-3">
              <description>{{bibref|RFC8966|Section A.2.1}}</description>
            </enumeration>
            <enumeration value="ETX">
              <description>{{bibref|RFC8966|Section A.2.2}}</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="SupportedSecurityMechanisms" access="readOnly">
        <description>
          Supported security mechanisms.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="MAC">
              <description>{{bibref|RFC8967}}</description>
            </enumeration>
            <enumeration value="DTLS">
              <description>{{bibref|RFC8968}}</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="SupportedMACAlgorithms" access="readOnly">
        <description>
          Supported MAC computation algorithms.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="HMAC-SHA256">
              <description>{{bibref|RFC8967}}</description>
            </enumeration>
            <enumeration value="BLAKE2s-128">
              <description>{{bibref|RFC8967}}</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="SupportedDTLSCertTypes" access="readOnly">
        <description>
          Supported DTLS certificate types.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="X.509">
              <description>{{bibref|RFC8968}}</description>
            </enumeration>
            <enumeration value="RawPublicKey">
              <description>{{bibref|RFC8968}}</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="StatsEnable" access="readWrite">
        <description>
          Enables or disables collection of statistics on all
          {{object|InterfaceSetting.}} instances. Statistics are provided in
          {{object|InterfaceSetting.{i}.Stats.}}. When enabled, existing
          statistics values are not cleared and will be incremented as new
          packets are counted.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

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

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

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

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

      <parameter name="StatsReset" access="readWrite" version="2.15">
        <description>
          When set to {{true}}, all Babel statistics counters are reset to
          zero. Statistics are provided in
          {{object|InterfaceSetting.{i}.Stats.}}.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Routing.Babel.Constants." access="readOnly"
        minEntries="1" maxEntries="1" version="2.15">
      <description>
        This object represents the constants used by the Babel protocol.
      </description>

      <parameter name="UDPPort" access="readWrite">
        <description>
          The UDP port number used by the Babel implementation to send and
          receive Babel packets. The UDP port number assigned by IANA is 6696.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MulticastGroup" access="readWrite">
        <description>
          The multicast group for sending and listening to multicast
          announcements on IPv6. The multicast group assigned by IANA is
          ff02::1:6.
        </description>
        <syntax>
          <dataType ref="IPv6Address"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Routing.Babel.InterfaceSetting.{i}."
        access="readWrite"
        numEntriesParameter="InterfaceSettingNumberOfEntries" minEntries="0"
        maxEntries="unbounded" enableParameter="Enable" version="2.15">
      <description>
        This object provides parameters related to the interfaces the Babel
        protocol is operating over and can act as a routing protocol for.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables Babel on this interface.
        </description>
        <syntax>
          <boolean/>
        </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 device 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" version="2.15">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="InterfaceReference" access="readOnly">
        <description>
          The {{object|###.IP.Interface}} object instance this Babel
          implementation is running over. The referenced interface object MUST
          have {{param|###.IP.Interface.{i}.IPv6Enable}} set to true.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="###.IP.Interface."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="InterfaceMetricAlgorithm" access="readOnly">
        <description>
          Indicates the metric computation algorithm used on this interface,
          from among the supported metric computation algorithms listed in
          {{param|#.SupportedMetricCompAlgorithms}}.
        </description>
        <syntax>
          <string>
            <enumerationRef targetParam="#.SupportedMetricCompAlgorithms"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SplitHorizonEnabled" access="readWrite">
        <description>
          Enables or disables the use of split horizon optimization when
          calculating metrics on this interface. Split horizon optimization is
          described in {{bibref|RFC8966|Section 3.7.4}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="McastHelloSeqno" access="readOnly">
        <description>
          The current sequence number in use for multicast Hellos sent on this
          interface.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="McastHelloInterval" access="readOnly">
        <description>
          The current interval (time in {{units}}) used for multicast Hellos
          sent on this interface.
        </description>
        <syntax>
          <unsignedInt>
            <units value="centiseconds"/>
            <range maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="UpdateInterval" access="readOnly">
        <description>
          The current interval (time in {{units}}) used for all updates
          (multicast or unicast) sent on this interface.
        </description>
        <syntax>
          <unsignedInt>
            <units value="centiseconds"/>
            <range maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MACEnabled" access="readWrite">
        <description>
          Enables or disables the MAC security mechanism.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="InterfaceMACKeySets" access="readWrite">
        <description>
          {{object|#.MACKeySet.}} instances that apply to this {{object}}
          instance. When an {{object}} is created, all {{object|#.MACKeySet.}}
          instances with {{param|#.MACKeySet.{i}.DefaultApply}} of {{true}}
          will be included in this list.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetParent="#.MACKeySet."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="MACVerify" access="readWrite">
        <description>
          A Boolean flag indicating whether MACs in incoming Babel packets are
          required to be present and are verified. If this parameter is
          {{true}}, incoming packets are required to have a valid MAC.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="DTLSEnabled" access="readWrite">
        <description>
          Enables or disables the DTLS security mechanism.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="InterfaceDTLSCertSets" access="readWrite">
        <description>
          {{object|#.DTLSCertSet.}} instances that apply to this {{object}}
          instance. When an {{object}} is created, all
          {{object|#.DTLSCertSet.}} instances with
          {{param|#.DTLSCertSet.{i}.DefaultApply}} of {{true}} will be included
          in this list.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetParent="#.DTLSCertSet."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="CachedInfoEnabled" access="readWrite">
        <description>
          A Boolean flag indicating whether the cached_info extension is
          included in ClientHello and ServerHello packets (see
          {{bibref|RFC8968|Appendix A}}. The extension is included if {{true}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="DTLSCertPrefer" access="readWrite">
        <description>
          Supported certificate types (from
          {{param|#.SupportedDTLSCertTypes}}), listed in order of preference.
          This list is used to populate the server_certificate_type extension
          in a ClientHello (see {{bibref|RFC8968|Appendix A}}). Values that are
          present with a non-empty
          {{param|#.DTLSCertSet.{i}.DTLSCert.{i}.CertPrivateKey}} in at least
          one instance of {{object|#.DTLSCertSet.{i}.DTLSCert.}} included in a
          {{object|#.DTLSCertSet.}} instance referenced by
          {{param|InterfaceDTLSCertSets}} will be used to populate the
          client_certificate_type extension in a Client Hello.
        </description>
        <syntax>
          <string>
            <enumerationRef targetParam="#.SupportedDTLSCertTypes"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="PacketLogEnable" access="readWrite">
        <description>
          Enables or disables the logging of Babel packets into the
          {{param|PacketLog}} on this interface.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="PacketLog" access="readOnly">
        <description>
          A reference to a {{object|###.DeviceInfo.VendorLogFile}} instance
          that contains a timestamped log of packets received and sent on
          {{param|#.Constants.UDPPort}} on this interface. The
          {{bibref|LIBPCAP}} file format with .pcap file extension SHOULD be
          supported for packet log files. Logging is enabled/disabled by
          {{param|PacketLogEnable}}.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong"
                targetParent="###.DeviceInfo.VendorLogFile." targetType="row"/>
          </string>
        </syntax>
      </parameter>

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

    <object name="Device.Routing.Babel.InterfaceSetting.{i}.Stats."
        access="readOnly" minEntries="1" maxEntries="1" version="2.15">
      <description>
        This object provides statistics parameters for this interface.
      </description>

      <parameter name="SentMcastHello" access="readOnly">
        <description>
          A count of the number of multicast Hello packets sent on this
          interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="SentMcastUpdate" access="readOnly">
        <description>
          A count of the number of multicast update packets sent on this
          interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="SentUcastHello" access="readOnly">
        <description>
          A count of the number of unicast Hello packets sent on this
          interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="SentUcastUpdate" access="readOnly">
        <description>
          A count of the number of unicast update packets sent on this
          interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="SentIHU" access="readOnly">
        <description>
          A count of the number of IHU ("I Heard You") packets sent on this
          interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="ReceivedPackets" access="readOnly">
        <description>
          A count of the number of Babel packets received on this interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Routing.Babel.InterfaceSetting.{i}.Neighbor.{i}."
        access="readOnly" numEntriesParameter="NeighborNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.15">
      <description>
        This object provides parameters related to neighbor devices that Babel
        packets are received from and sent to.
      </description>
      <uniqueKey functional="true">
        <parameter ref="NeighborAddress"/>
      </uniqueKey>

      <parameter name="NeighborAddress" access="readOnly">
        <description>
          IP address the neighbor sends packets from.
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
        </syntax>
      </parameter>

      <parameter name="HelloMCastHistory" access="readOnly">
        <description>
          The multicast Hello history of whether or not the multicast Hello
          packets prior to {{param|ExpectedMCastHelloSeqno}} were received.
          This is a binary sequence where the most recently received Hello is
          expressed as a "1" placed in the left-most bit, with prior bits
          shifted right (and "0" bits placed between prior Hello bits and the
          most recent Hello bit for any not-received Hellos). This value is
          displayed using hex digits. See {{bibref|RFC8966|Section A.1}}.
        </description>
        <syntax>
          <hexBinary/>
        </syntax>
      </parameter>

      <parameter name="HelloUCastHistory" access="readOnly">
        <description>
          The unicast Hello history of whether or not the unicast Hello packets
          prior to {{param|ExpectedUCastHelloSeqno}} were received. This is a
          binary sequence where the most recently received Hello is expressed
          as a "1" placed in the left-most bit, with prior bits shifted right
          (and "0" bits placed between prior Hello bitss and the most recent
          Hello bit for any not-received Hellos). This value is displayed using
          hex digits. See {{bibref|RFC8966|Section A.1}}.
        </description>
        <syntax>
          <hexBinary/>
        </syntax>
      </parameter>

      <parameter name="TXCost" access="readOnly">
        <description>
          Transmission cost value from the last IHU ("I Heard You") packet
          received from this neighbor, or maximum value (as defined in
          {{bibref|RFC8966|Section 3.4.2}}) to indicate the IHU hold timer for
          this neighbor has expired.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ExpectedMCastHelloSeqno" access="readOnly">
        <description>
          Expected multicast Hello sequence number of next Hello to be received
          from this neighbor. If multicast Hello packets are not expected, or
          processing of multicast packets is not enabled, this MUST be -1. Note
          {{bibref|RFC9046}} specifies a 16-bit unsigned integer with NULL
          value to represent no processed or expected multicast Hello packets.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="65535"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="ExpectedUCastHelloSeqno" access="readOnly">
        <description>
          Expected unicast Hello sequence number of next Hello to be received
          from this neighbor. If unicast Hello packets are not expected, or
          processing of unicast packets is not enabled, this MUST be -1.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="65535"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="UnicastHelloSeqno" access="readOnly">
        <description>
          The current sequence number in use for unicast Hellos sent to this
          neighbor. If unicast Hello packets are not being sent, this MUST be
          -1.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="65535"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="UnicastHelloInterval" access="readOnly">
        <description>
          The current interval in {{units}} used for unicast Hellos sent to
          this neighbor.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="65535"/>
            <units value="centiseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RXCost" access="readOnly">
        <description>
          Reception cost calculated for this neighbor. This value is usually
          derived from the Hello history, which may be combined with other
          data, such as statistics maintained by the link layer. The {{param}}
          is sent to a neighbor in each IHU ("I Heard You") packet. See
          {{bibref|RFC8966|Section 3.4.3}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Cost" access="readOnly">
        <description>
          Link cost is computed from the values maintained by a Babel
          implementation in its neighbor table as defined in
          {{bibref|RFC8966|Section3.2.4}}: the statistics kept about the
          reception of Hellos and the transmission cost computed from received
          IHU packets. See {{bibref|RFC8966|Section 3.4.3}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Routing.Babel.Route.{i}." access="readOnly"
        numEntriesParameter="RouteNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.15">
      <description>
        This object provides parameters for routes received from neighbors and
        internal routes.
      </description>
      <uniqueKey functional="true">
        <parameter ref="RoutePrefix"/>
        <parameter ref="SourceRouterID"/>
      </uniqueKey>

      <parameter name="RoutePrefix" access="readOnly">
        <description>
          IP prefix for which this route is advertised.
        </description>
        <syntax>
          <dataType ref="IPPrefix"/>
        </syntax>
      </parameter>

      <parameter name="SourceRouterID" access="readOnly">
        <description>
          Router-id of the router that originated this route.
        </description>
        <syntax>
          <hexBinary/>
        </syntax>
      </parameter>

      <parameter name="Neighbor" access="readOnly">
        <description>
          Reference to the {{object|#.InterfaceSetting.{i}.Neighbor}} entry for
          the neighbor that advertised this route.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong"
                targetParent="#.InterfaceSetting.{i}.Neighbor."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ReceivedMetric" access="readOnly">
        <description>
          The metric with which this route was advertised by the neighbor, or
          maximum value (as defined in {{bibref|RFC8966}}) to indicate the
          route was recently retracted and is temporarily unreachable (see
          {{bibref|RFC8966|Section 3.5.5}}). This metric will be -1 if the
          route was not received from a neighbor but was generated through
          other means. At least one of {{param}} and {{param|CalculatedMetric}}
          MUST have a value other than -1. Having both be other than -1 is
          expected for a route that is received and subsequently advertised.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="65535"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="CalculatedMetric" access="readOnly">
        <description>
          A calculated metric for this route. How the metric is calculated is
          implementation-specific. Maximum value (as defined in
          {{bibref|RFC8966}}) indicates the route was recently retracted and is
          temporarily unreachable ({{bibref|RFC8966|Section 3.5.5}}). At least
          one of {{param|ReceivedMetric}} and {{param}} MUST have a value other
          than -1. Having both be other than -1 is expected for a route that is
          received and subsequently advertised.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="65535"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="RouteSeqno" access="readOnly">
        <description>
          The sequence number with which this route was advertised.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="NextHop" access="readOnly">
        <description>
          The next-hop address of this route. This will be empty if this route
          has no next-hop address.
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
        </syntax>
      </parameter>

      <parameter name="RouteFeasible" access="readOnly">
        <description>
          A Boolean flag indicating whether this route is feasible, as defined
          in {{bibref|RFC8966|Section 3.5.1}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="RouteSelected" access="readOnly">
        <description>
          A Boolean flag indicating whether this route is selected (i.e.,
          whether it is currently being used for forwarding and is being
          advertised).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Routing.Babel.MACKeySet.{i}." access="readWrite"
        numEntriesParameter="MACKeySetNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.15">
      <description>
        This object provides parameters related to use of the HMAC security
        mechanism {{bibref|RFC8967}} to sign and verify Babel packets.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="DefaultApply" access="readWrite">
        <description>
          A Boolean flag indicating whether this {{object}} instance is to be
          applied to all new {{object|#.InterfaceSetting.}} instances. If
          {{true}}, this {{object}} instance applies to all new
          {{object|#.InterfaceSetting.}} instances at the time they are created
          and a reference to this {{object}} is included in the
          {{param|#.InterfaceSetting.{i}.InterfaceMACKeySets}} parameter. If
          {{false}}, this {{object}} is not applied to new
          {{object|#.InterfaceSetting.}} instances when they are created.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

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

    <object name="Device.Routing.Babel.MACKeySet.{i}.MACKey.{i}."
        access="readWrite" numEntriesParameter="MACKeyNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.15">
      <description>
        This object provides the MAC keys used to calculate MACs for
        verification and sending by the {{object|#.}} instance.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="KeyUseSend" access="readWrite">
        <description>
          Indicates whether this {{param|KeyValue}} is used to compute a MAC
          and include that MAC in the sent Babel packet. A MAC for sent packets
          is computed using this key if the value is {{true}}. If the value is
          {{false}}, this key is not used to compute a MAC to include in sent
          Babel packets.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="KeyUseVerify" access="readWrite">
        <description>
          Indicates whether the {{param|KeyValue}} is used to verify incoming
          Babel packets. Incoming packets are verified using this key if
          {{true}}. If {{false}} no MAC is computed from {{param|KeyValue}} for
          comparing with the MAC in an incoming Babel packet.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="KeyValue" access="readWrite">
        <description>
          The value of the MAC key. This value is immutable, once written. This
          value is of a length suitable for the associated
          {{param|MACKeyAlgorithm}}. If the algorithm is based on the HMAC
          construction {{bibref|RFC2104}}, the length MUST be between 0 and an
          upper limit that is at least the size of the output length (where
          "HMAC-SHA256" output length is 32 octets as described in
          {{bibref|RFC4868}}). Longer lengths MAY be supported but are not
          necessary if the management system has the ability to generate a
          suitably random value (e.g., by randomly generating a value or by
          using a key derivation technique as recommended in
          {{bibref|RFC8967|Security Considerations}}). If the algorithm is
          "BLAKE2s-128", the length MUST be between 0 and 32 bytes inclusive,
          as specified in {{bibref|RFC7693}}.

          Note: This parameter was changed to readWrite in the Device 2.19
          version.
        </description>
        <syntax secured="true">
          <hexBinary/>
        </syntax>
      </parameter>

      <parameter name="MACKeyAlgorithm" access="readWrite">
        <description>
          The name of the MAC algorithm used with this key. The value MUST be
          the same as one of the enumerations listed in the
          {{param|##.SupportedMACAlgorithms}} parameter.
        </description>
        <syntax>
          <string>
            <enumerationRef targetParam="##.SupportedMACAlgorithms"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="MACTestState" access="readWrite" version="2.15">
        <description>
          This parameter allows the MAC key and MAC algorithm to be tested to
          see if they produce an expected outcome. The command calculates a MAC
          for {{param|InputString}} using the {{param|KeyValue}} and the
          algorithm indicated by {{param|MACKeyAlgorithm}} and compares that to
          the value of {{param|InputMAC}}. If the values match, the output
          {{param|Match}} is {{true}}.

          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="DiagnosticsState">
            <enumeration value="None" access="readOnly"/>
            <enumeration value="Requested"/>
            <enumeration value="Canceled" optional="true"/>
            <enumeration value="Complete" access="readOnly"/>
            <enumeration value="Error" access="readOnly" optional="true"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="InputString" access="readWrite" version="2.15">
        <description>
          Setting {{param|MACTestState}} to {{enum|Requested|MACTestState}}
          calculates a MAC of {{param}} using the {{param|KeyValue}} and the
          algorithm indicated by {{param|MACKeyAlgorithm}}.
        </description>
        <syntax>
          <hexBinary/>
        </syntax>
      </parameter>

      <parameter name="InputMAC" access="readWrite" version="2.15">
        <description>
          Whenever a MAC is calculated from {{param|InputString}} that MAC is
          then compared to {{param}}.
        </description>
        <syntax>
          <hexBinary/>
        </syntax>
      </parameter>

      <parameter name="Match" access="readOnly" version="2.15">
        <description>
          {{param}} is {{true}} if the calculated MAC and {{param|InputMAC}}
          are the same.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Routing.Babel.DTLSCertSet.{i}." access="readWrite"
        numEntriesParameter="DTLSCertSetNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.15">
      <description>
        This object provides parameters related to use of the DTLS security
        mechanism {{bibref|RFC8968}} to encrypt Babel packets.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="DefaultApply" access="readWrite">
        <description>
          A Boolean flag indicating whether this {{object}} instance is to be
          applied to all new {{object|#.InterfaceSetting.}} instances. If
          {{true}}, this {{object}} instance applies to all new
          {{object|#.InterfaceSetting.}} instances at the time they are created
          and a reference to this {{object}} is included in the
          {{param|#.InterfaceSetting.{i}.InterfaceDTLSCertSets}} parameter. If
          {{false}}, this {{object}} is not applied to new
          {{object|#.InterfaceSetting.}} instances when they are created.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

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

    <object name="Device.Routing.Babel.DTLSCertSet.{i}.DTLSCert.{i}."
        access="readWrite" numEntriesParameter="DTLSCertNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.15">
      <description>
        This object provides the certificates used for verification and signing
        by the {{object|#.}} instance with DTLS.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="CertValue" access="readWrite">
        <description>
          The DTLS certificate in PEM format {{bibref|RFC7468}}. This value is
          immutable, once written.

          Note: This parameter was changed to readWrite in the Device 2.19
          version.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="CertType" access="readWrite">
        <description>
          The certificate type of {{param|CertValue}} (from among the supported
          types in {{param|##.SupportedDTLSCertTypes}}). This value is
          immutable, once written.
        </description>
        <syntax>
          <string>
            <enumerationRef targetParam="##.SupportedDTLSCertTypes"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="CertPrivateKey" access="readWrite">
        <description>
          The private key of the certificate. {{param}} is only given a value
          if the certificate belongs to this device. If {{param}} is non-empty,
          this certificate can be supplied during DTLS handshaking. This value
          is immutable, once written.

          Note: This parameter was changed to readWrite in the Device 2.19
          version.
        </description>
        <syntax secured="true">
          <hexBinary/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.NeighborDiscovery." access="readOnly" minEntries="1"
        maxEntries="1" version="2.2">
      <description>
        The Neighbor Discovery Protocol (NDP) object {{bibref|RFC4861}}. This
        object applies only to IPv6. It contains an {{object|InterfaceSetting}}
        table that defines the NDP configuration for individual IP interfaces.
      </description>

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

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

    <object name="Device.NeighborDiscovery.InterfaceSetting.{i}."
        access="readWrite"
        numEntriesParameter="InterfaceSettingNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded"
        version="2.2">
      <description>
        Per-interface Neighbor Discovery Protocol (NDP) configuration
        {{bibref|RFC4861}}.

        For enabled table entries, if {{param|Interface}} is not a valid
        reference to an IPv6-capable interface (that is attached to the IPv6
        stack), then the table entry is inoperable and the CPE MUST set
        {{param|Status}} to {{enum|Error_Misconfigured|Status}}.

        Note: The {{object}} table includes a unique key parameter that is a
        strong reference. If a strongly referenced object is deleted, the CPE
        will set the referencing parameter to {{empty}}. However, doing so
        under these circumstances might cause the updated {{object}} row to
        then violate the table's unique key constraint; if this occurs, the CPE
        MUST set {{param|Status}} to {{enum|Error_Misconfigured|Status}} and
        disable the offending {{object}} row.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="Interface"/>
      </uniqueKey>

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

      <parameter name="Status" access="readOnly">
        <description>
          The status of this entry. {{enum}}

          The {{enum|Error_Misconfigured}} value indicates that a necessary
          configuration value is undefined or invalid.

          The {{enum|Error}} value MAY be used by the CPE to indicate a locally
          defined error condition.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Enabled"/>
            <enumeration value="Error_Misconfigured"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

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

      <parameter name="Interface" access="readWrite">
        <description>
          This is the IP interface associated with this {{object}} entry.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="##.IP.Interface."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DADTransmits" access="readWrite" version="2.13">
        <description>
          The number of consecutive Neighbor Solicitation messages sent while
          performing Duplicate Address Detection on a tentative address
          (see{{bibref|RFC4862|5.1}}).

          A value of zero indicates that Duplicate Address Detection is not
          performed on tentative addresses.

          A value of one indicates a single transmission with no follow-up
          retransmissions.

          If the value is greater than 1, {{param|RetransTimer}} defines the
          delay between consecutive messages.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="1"/>
        </syntax>
      </parameter>

      <parameter name="RetransTimer" access="readWrite">
        <description>
          Retransmission interval in {{units}}, as defined in
          {{bibref|RFC4861}}. For auto-configuration purposes, {{param}}
          specifies the delay between consecutive Neighbor Solicitation
          transmissions performed during Duplicate Address Detection (DAD)
          {{bibref|RFC4862|Section 5.4}}, as well as the time a node waits
          after sending the last Neighbor Solicitation before ending the DAD
          process.
        </description>
        <syntax>
          <unsignedInt>
            <units value="milliseconds"/>
            <range minInclusive="1"/>
          </unsignedInt>
          <default type="object" value="1000"/>
        </syntax>
      </parameter>

      <parameter name="RtrSolicitationInterval" access="readWrite">
        <description>
          Retransmission interval in {{units}}, as defined in
          {{bibref|RFC4861|6.3.7}}. For auto-configuration purposes, {{param}}
          specifies the delay between consecutive Router Solicitation
          transmissions.
        </description>
        <syntax>
          <unsignedInt>
            <units value="milliseconds"/>
            <range minInclusive="4000"/>
          </unsignedInt>
          <default type="object" value="4000"/>
        </syntax>
      </parameter>

      <parameter name="MaxRtrSolicitations" access="readWrite">
        <description>
          Maximum Number of Router Solicitation Transmission messages, as
          defined in {{bibref|RFC4861}}. For auto-configuration purposes
          {{param}} specifies the Maximum Number of Router Solicitation
          Transmission messages to help the host to conclude that there are no
          routers on the link.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="3"/>
        </syntax>
      </parameter>

      <parameter name="NUDEnable" access="readWrite">
        <description>
          Enables or disables Neighbor Unreachability Detection (NUD)
          {{bibref|RFC4861|Section 7}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="RSEnable" access="readWrite">
        <description>
          Enables or disables Router Solicitation (RS) on {{param|Interface}}
          {{bibref|RFC4861|Section 4.1}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.RouterAdvertisement." access="readOnly"
        minEntries="1" maxEntries="1" version="2.2">
      <description>
        The Router Advertisement (RA) object {{bibref|RFC4861}}. This object
        applies only to IPv6. It contains an {{object|InterfaceSetting}} table
        that defines the RA configuration for individual IP interfaces.

        Information received via router advertisement messages is automatically
        propagated to the relevant {{object|#.IP.Interface}} sub-objects, e.g.
        to the {{object|#.IP.Interface.{i}.IPv6Address}} and
        {{object|#.IP.Interface.{i}.IPv6Prefix}} tables.
      </description>

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

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

    <object name="Device.RouterAdvertisement.InterfaceSetting.{i}."
        access="readWrite"
        numEntriesParameter="InterfaceSettingNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded"
        version="2.2">
      <description>
        Per-interface Router Advertisement (RA) configuration
        {{bibref|RFC4861}}. Table entries are created for use in sending Router
        Advertisements.

        For enabled table entries, if {{param|Interface}} is not a valid
        reference to an IPv6-capable interface (that is attached to the IPv6
        stack), then the table entry is inoperable and the CPE MUST set
        {{param|Status}} to {{enum|Error_Misconfigured|Status}}.

        Note: The {{object}} table includes a unique key parameter that is a
        strong reference. If a strongly referenced object is deleted, the CPE
        will set the referencing parameter to {{empty}}. However, doing so
        under these circumstances might cause the updated {{object}} row to
        then violate the table's unique key constraint; if this occurs, the CPE
        MUST set {{param|Status}} to {{enum|Error_Misconfigured|Status}} and
        disable the offending {{object}} row.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="Interface"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables this {{object}} entry.

          Defines the value of the ''IsRouter'' and ''AdvSendAdvertisements''
          flags from {{bibref|RFC4861|Section 4.2}}
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The status of this entry. {{enum}}

          The {{enum|Error_Misconfigured}} value indicates that a necessary
          configuration value is undefined or invalid.

          The {{enum|Error}} value MAY be used by the CPE to indicate a locally
          defined error condition.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Enabled"/>
            <enumeration value="Error_Misconfigured"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

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

      <parameter name="Interface" access="readWrite">
        <description>
          This is the IP interface associated with this {{object}} entry.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="##.IP.Interface."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="RDNSSMode" access="readWrite" version="2.17">
        <description>
          Describes which IPv6 address information MUST be specified in the
          RDNSS option field specified in {{bibref|RFC8106|5.1. Recursive DNS
          Server Option}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Static">
              <description>
                The DNS Servers as defined in the {{param|RDNSS}} parameter
                should be used in the RA messages. A comma separated list of
                IPv6 addresses must be supported.
              </description>
            </enumeration>
            <enumeration value="LLA">
              <description>
                The link-local IPv6 address of the {{param|Interface}} is sent
                in the RA messages.
              </description>
            </enumeration>
            <enumeration value="GUA" optional="true">
              <description>
                The global unique IPv6 addresses of the {{param|Interface}} are
                sent in the RA messages.
              </description>
            </enumeration>
            <enumeration value="LLA_GUA" optional="true">
              <description>
                Both GUA and LLA of the {{param|Interface}} are sent in the RA
                messages.
              </description>
            </enumeration>
          </string>
          <default type="object" value="Static"/>
        </syntax>
      </parameter>

      <parameter name="RDNSS" access="readWrite" version="2.17">
        <description>
          The RDNSS parameter contains one or more IPv6 addresses of RDNSSes as
          described in {{bibref|RFC8106|5.1. Recursive DNS Server Option}}.

          When {{param|RDNSSMode}} is not {{enum|Static|RDNSSMode}}, this
          parameter will contain the list of IPv6 addresses, automatically
          filled in by the system, that needs to be advertised.

          {{empty}} means that no RDNSS information is being advertised.
        </description>
        <syntax>
          <list/>
          <dataType ref="IPv6Address"/>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>

      <parameter name="DNSSL" access="readWrite" version="2.17">
        <description>
          The DNSSL parameter contains one or more domain names of DNS suffixes
          as described in {{bibref|RFC8106|5.2. DNS Search List Option}}.

          {{empty}} means that no DNSSL information is being advertised.
        </description>
        <syntax>
          <list/>
          <string/>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>

      <parameter name="ManualPrefixes" access="readWrite">
        <description>
          {{list}} {{reference}}

          Manually-configured prefixes that will be sent in Router
          Advertisement messages. Each referenced prefix MUST have a
          {{param|##.IP.Interface.{i}.IPv6Prefix.{i}.StaticType}} of
          {{enum|Static|##.IP.Interface.{i}.IPv6Prefix.{i}.StaticType}} or
          {{enum|Child|##.IP.Interface.{i}.IPv6Prefix.{i}.StaticType}}. Router
          Advertisement messages MUST include Prefix Information Options
          {{bibref|RFC4861}} for all ''Valid''
          ({{param|##.IP.Interface.{i}.IPv6Prefix.{i}.ValidLifetime}} is
          infinite or in the future) prefixes in this list.

          Prefixes MUST be associated with the interface instance referenced by
          {{param|Interface}}.
        </description>
        <syntax>
          <list maxItems="8">
            <size/>
          </list>
          <string>
            <pathRef refType="strong"
                targetParent="##.IP.Interface.{i}.IPv6Prefix." targetType="row"/>
          </string>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>

      <parameter name="Prefixes" access="readOnly">
        <description>
          {{list}} {{reference}}

          All prefixes that will be included in Router Advertisement (RA)
          messages sent out this interface. This list can include:

          * Prefixes from {{param|ManualPrefixes}} that are included in RA
            messages.

          * Prefixes with {{param|##.IP.Interface.{i}.IPv6Prefix.{i}.Origin}} =
            {{enum|Child|##.IP.Interface.{i}.IPv6Prefix.{i}.Origin}} or
            {{enum|AutoConfigured|##.IP.Interface.{i}.IPv6Prefix.{i}.Origin}}
            associated with the interface instance referenced by
            {{param|Interface}}.
        </description>
        <syntax>
          <list maxItems="8">
            <size/>
          </list>
          <string>
            <pathRef refType="strong"
                targetParent="##.IP.Interface.{i}.IPv6Prefix." targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="MaxRtrAdvInterval" access="readWrite">
        <description>
          The maximum time allowed between sending unsolicited multicast Router
          Advertisements from the interface, in {{units}} (see
          {{bibref|RFC4861|Section 4.2}}).
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="4" maxInclusive="1800"/>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="600"/>
        </syntax>
      </parameter>

      <parameter name="MinRtrAdvInterval" access="readWrite">
        <description>
          The minimum time allowed between sending unsolicited multicast Router
          Advertisements from the interface, in {{units}} (see
          {{bibref|RFC4861|Section 4.2}}).

          The value MUST be no greater than 3/4 * {{param|MaxRtrAdvInterval}}.

          Note: The ''1350'' maximum was derived from the RFC, based on 3/4
          times the maximum value of {{param|MaxRtrAdvInterval}}. Similarly,
          the ''200'' default was derived from the RFC, based on 1/3 times the
          default value of {{param|MaxRtrAdvInterval}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="3" maxInclusive="1350"/>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="200"/>
        </syntax>
      </parameter>

      <parameter name="AdvDefaultLifetime" access="readWrite">
        <description>
          The value placed in the "Router Lifetime" field of Router
          Advertisement messages on this interface, in {{units}} (see
          {{bibref|RFC4861|Section 4.2}}).

          The value can be zero or between {{param|MaxRtrAdvInterval}} and 9000
          {{units}}, but these limits can be overridden by specific documents
          that describe how IPv6 operates over different link layers.

          A value of zero indicates that the router is not to be used as a
          default router.

          Note: The ''1800'' default was derived from the RFC, based on 3 times
          the default value of {{param|MaxRtrAdvInterval}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="65535"/>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="1800"/>
        </syntax>
      </parameter>

      <parameter name="AdvManagedFlag" access="readWrite">
        <description>
          The value placed in the "Managed address configuration" (M) flag
          field of Router Advertisement messages on this interface (see
          {{bibref|RFC4861|Section 4.2}}, and {{bibref|RFC4862}}).
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="AdvOtherConfigFlag" access="readWrite">
        <description>
          The value placed in the "Other configuration" (O) flag field of
          Router Advertisement messages on this interface (see
          {{bibref|RFC4861|Section 4.2}}, and {{bibref|RFC4862}}).
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="AdvMobileAgentFlag" access="readWrite">
        <description>
          The value placed in the "Home agent" (H) flag field of Router
          Advertisement messages on this interface (see
          {{bibref|RFC3775|Section 7.1}}).
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="AdvPreferredRouterFlag" access="readWrite">
        <description>
          The value placed in the "Default Router Preference" (Prf) field of
          Router Advertisement messages on this interface, as defined in
          {{bibref|RFC4191|Section 2.2}}. {{enum}}

          Also see {{bibref|RFC4191|Section 2.1}} which discusses how this flag
          is encoded on the wire.
        </description>
        <syntax>
          <string>
            <enumeration value="High"/>
            <enumeration value="Medium"/>
            <enumeration value="Low"/>
          </string>
          <default type="object" value="Medium"/>
        </syntax>
      </parameter>

      <parameter name="AdvNDProxyFlag" access="readWrite">
        <description>
          The value placed in the "Proxy" (P) flag field of Router
          Advertisement messages on this interface (see
          {{bibref|RFC4389|Section 4.1.3.3}}).
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="AdvLinkMTU" access="readWrite">
        <description>
          The value placed in MTU options of Router Advertisement messages on
          this interface. A value of zero indicates that no MTU options are
          included (see {{bibref|RFC4861|Section 4.6.4}}).
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="AdvReachableTime" access="readWrite">
        <description>
          The value placed in the "Reachable Time" field of Router
          Advertisement messages on this interface, in {{units}} (see
          {{bibref|RFC4861|Section 4.2}}).

          The value zero means unspecified (by the router).
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="3600000"/>
            <units value="milliseconds"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="AdvRetransTimer" access="readWrite">
        <description>
          The value placed in the "Retrans Timer" field of Router Advertisement
          messages on this interface, in {{units}} (see
          {{bibref|RFC4861|Section 4.2}}).

          The value zero means unspecified (by the router).
        </description>
        <syntax>
          <unsignedInt>
            <units value="milliseconds"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="AdvCurHopLimit" access="readWrite">
        <description>
          The value placed in the "Cur Hop Limit" field of Router Advertisement
          messages on this interface (see {{bibref|RFC4861|Section 4.2}}).

          The value zero means unspecified (by the router).

          Note: The default can be overridden with the value specified in
          {{bibref|RFC3232}} that was in effect at the time of implementation.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="AdvRDNSSLifetime" access="readWrite" version="2.17">
        <description>
          The Lifetime field in RDNSS specifies the maximum duration, in
          {{units}}, during which the provided RDNSS addresses can be used for
          name resolution relative to the time the packet is received. By
          default, the value of Lifetime is recommended to be at least 3 times
          the MaxRtrAdvInterval. The MaxRtrAdvInterval is defined in
          {{bibref|RFC4861}} and refers to the maximum interval between Router
          Advertisement (RA) messages.

          When the Lifetime value is set to all one bits (0xffffffff), it
          indicates an infinite duration.

          The Lifetime value of zero signifies that the RDNSS addresses must
          not be used anymore, as specified in {{bibref|RFC8106|5.1. Recursive
          DNS Server Option}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="4294967295"/>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="AdvDNSSLLifetime" access="readWrite" version="2.17">
        <description>
          The Lifetime field in DNSSL specifies the maximum duration, in
          {{units}}, during which the provided DNSSL domain names can be used
          for name resolution relative to the time the packet is received. By
          default, the value of Lifetime is recommended to be at least 3 times
          the MaxRtrAdvInterval. The MaxRtrAdvInterval is defined in
          {{bibref|RFC4861}} and refers to the maximum interval between Router
          Advertisement (RA) messages.

          When the Lifetime value is set to all one bits (0xffffffff), it
          indicates an infinite duration.

          The Lifetime value of zero signifies that the DNSSL domain names must
          not be used anymore, as specified in {{bibref|RFC8106|5.2. DNS Search
          List Option}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
            <range maxInclusive="4294967295"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

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

    <object name="Device.RouterAdvertisement.InterfaceSetting.{i}.Option.{i}."
        access="readWrite" numEntriesParameter="OptionNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded"
        version="2.2">
      <description>
        This object specifies the options in a Router Advertisement (RA)
        message {{bibref|RFC4861|Section 4.6}}. {{object}} entries are created
        for use in sending Router Advertisements (enabled options MUST be
        included in RA messages sent). This includes support for sending DNS
        information in the RA message as described in {{bibref|RFC6106}}.

        This table is intended only for options that are not modeled elsewhere.
        For example, it is not appropriate for the MTU option (which is modeled
        via {{param|#.AdvLinkMTU}}).
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="Tag"/>
      </uniqueKey>

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

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

      <parameter name="Tag" access="readWrite">
        <description>
          Option tag (type) {{bibref|RFC4861|Section 4.6}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Value" access="readWrite">
        <description>
          A hexbinary encoded option value {{bibref|RFC4861|Section 4.6}}.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="0" maxLength="65535"/>
          </hexBinary>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IPv6rd." access="readOnly" minEntries="1"
        maxEntries="1" version="2.2">
      <description>
        Settings allowing a CPE to derive and route IPv6 Rapid Deployment (6rd)
        delegated prefixes as specified in {{bibref|RFC5969}}. The 6rd
        mechanism is intended to be implemented only on what {{bibref|RFC5969}}
        refers to as ''Customer Edge Routers'', i.e. on gateway devices, that
        support IPv6 on the LAN side and only have IPv4 connectivity on the WAN
        side.

        See the 6rd Theory of Operation {{bibref|TR-181i2|Appendix VI}} for a
        description of the working of this 6rd data model.
      </description>

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

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

    <object name="Device.IPv6rd.InterfaceSetting.{i}." access="readOnly"
        numEntriesParameter="InterfaceSettingNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.2">
      <description>
        6rd {{bibref|RFC5969}} settings.

        A 6rd delegated prefix is expected to be of maximum length 64 bits, and
        is the concatenation of the following two items:

        * Service provider IPv6 prefix: specified via the
          {{param|SPIPv6Prefix}} parameter

        * IPv4 address suffix: the IPv4 address with the first
          {{param|IPv4MaskLength}} bits removed

        This object definition is derived from {{bibref|RFC5969}} with some
        minor nomenclature changes.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enable or disable this {{object}} instance.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The status of this entry. {{enum}}

          The {{enum|Error}} value MAY be used by the CPE to indicate a locally
          defined error condition.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Enabled"/>
            <enumeration value="Error" optional="true"/>
          </string>
        </syntax>
      </parameter>

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

      <parameter name="BorderRelayIPv4Addresses" access="readWrite">
        <description>
          List items are the IPv4 addresses (possibly anycast) of the 6rd
          Relay(s).
        </description>
        <syntax>
          <list maxItems="4">
            <size/>
          </list>
          <dataType ref="IPv4Address"/>
        </syntax>
      </parameter>

      <parameter name="AllTrafficToBorderRelay" access="readWrite">
        <description>
          If {{true}}, the destination address for all 6rd traffic will be set
          (IPv4 destination address) to one of the
          {{param|BorderRelayIPv4Addresses}}. If {{false}}, traffic whose
          destination address begins with the same prefix as
          {{param|SPIPv6Prefix}} will be sent directly to the destination IPv4
          address of the endpoint, which is in the same 6rd domain. See 6rd
          Theory of Operation for further explanation
          {{bibref|TR-181i2|Appendix VI}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="SPIPv6Prefix" access="readWrite">
        <description>
          The Service Provider's 6rd IPv6 prefix for this deployment and this
          6rd RG.
        </description>
        <syntax>
          <dataType ref="IPv6Prefix"/>
        </syntax>
      </parameter>

      <parameter name="IPv4MaskLength" access="readWrite">
        <description>
          The number of high-order {{units}} that are identical across all IPv4
          addresses within a given 6rd domain. This number of {{units}} MUST be
          removed from the start of the IPv4 address when generating the 6rd
          delegated prefix.

          For example, if this value is 8, only the final 24 {{units}} of the
          subscriber IPv4 prefix will be used when creating the IPv6 delegated
          prefix, determining the destination IPv4 encapsulation address, etc.

          If the value is 0, then the whole 32 {{units}} of the IPv4 address
          are used in the encoding.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="32"/>
            <units value="bits"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="AddressSource" access="readWrite">
        <description>
          {{reference}} Points to the IPv4 address that is the source of the
          IPv4 address embedded in the IPv6 6rd prefix, and used as the source
          encapsulating IPv4 address. If the value is {{empty}} or this
          parameter is not present, the device will use internal logic to
          determine which IPv4 source address to use.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong"
                targetParent="##.IP.Interface.{i}.IPv4Address."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="TunnelInterface" access="readOnly">
        <description>
          {{reference}} This is an IP interface of ''Type''
          {{enum|Tunnel|##.IP.Interface.{i}.Type}} that is logically the tunnel
          entry point for upstream IPv6 traffic and is also logically the
          tunnel exit point for downstream IPv6 traffic (i.e. the entry point
          for non-tunneled upstream IPv6 traffic to enter a tunnel and become
          tunneled, or conversely, the exit point for downstream IPv6 traffic
          leaving a tunnel after being un-tunneled).

          IPv6 traffic that enters {{param}} from the LAN is expected to
          continue on through {{param|TunneledInterface}}, and traffic from the
          WAN is expected to come from {{param|TunneledInterface}} into
          {{param}}. {{param}} is a logical interface that can allow for
          classification, marking (of IPv6 headers), and policing of IPv6
          traffic that will be going over a 6rd tunnel. These functions are
          modeled in the {{object|##.QoS}} object.

          {{param}} can be used also to represent the 6rd virtual interface
          defined in {{bibref|RFC5969}}.

          Note: In 6rd, IPv6 packets arriving over one or more device LAN IP
          interfaces are logically fed into this {{param}}. Likewise, 6rd
          traffic from the WAN gets logically sent from this {{param}} to LAN
          IP interfaces.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="##.IP.Interface."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="TunneledInterface" access="readOnly">
        <description>
          {{reference}} This is an IP interface of ''Type''
          {{enum|Tunneled|##.IP.Interface.{i}.Type}} that provides information
          about the IPv4 headers used to encapsulate the IPv6 packets.

          Encapsulated IPv6 traffic that enters {{param}} from the WAN is
          expected to continue on through {{param|TunnelInterface}}, and
          traffic from the LAN is expected to come from
          {{param|TunnelInterface}} into {{param}}. {{param}} is a logical
          interface that can allow for classification, marking (of IPv4 headers
          and VLAN tags), and policing of IPv4 packets that encapsulate IPv6
          packets in 6rd traffic. These functions are modeled in the
          {{object|##.QoS}} object.

          Note: In 6rd, {{param}} traffic originating from the LAN logically
          feeds into a WAN-side IPv4 capable IP interface that the "IPv6 6rd
          tunnel" goes over. 6rd traffic that enters over this IPv4 WAN
          interface gets logically sent to this {{param}}.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="##.IP.Interface."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DSLite." access="readOnly" minEntries="1"
        maxEntries="1" version="2.2">
      <description>
        Settings allowing a CPE to configure and route IPv6 Dual-Stack Lite
        (DSLite) as specified in {{bibref|DSLite}}. The DS-Lite mechanism is
        intended to be implemented only on gateway devices that support IPv4 on
        the LAN side and only have IPv6 connectivity on the WAN side.

        See the Dual-Stack Lite Theory of Operation {{bibref|TR-181i2|Appendix
        VII}} for a description of the working of this DS-Lite data model.
      </description>

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

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

    <object name="Device.DSLite.InterfaceSetting.{i}." access="readOnly"
        numEntriesParameter="InterfaceSettingNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.2">
      <description>
        DSLite {{bibref|DSLite}} settings.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enable or disable this {{object}} instance.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The status of this entry. {{enum}}

          The {{enum|Error}} value MAY be used by the CPE to indicate a locally
          defined error condition.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Enabled"/>
            <enumeration value="Error" optional="true"/>
          </string>
        </syntax>
      </parameter>

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

      <parameter name="EndpointAssignmentPrecedence" access="readWrite">
        <description>
          Indicates the preferred method to be used in assigning values to
          {{param|EndpointName}} when both static and dynamic values are
          available. See {{param|EndpointName}} for further clarification.
        </description>
        <syntax>
          <string>
            <enumeration value="DHCPv6"/>
            <enumeration value="Static"/>
          </string>
          <default type="factory" value="DHCPv6"/>
        </syntax>
      </parameter>

      <parameter name="EndpointAddressTypePrecedence" access="readWrite"
          version="2.5">
        <description>
          Indicates the preferred method to be used to assign the address of
          the DS-Lite Endpoint when both {{param|EndpointName}} and
          {{param|EndpointAddress}} values are available and the
          {{enum|Static|EndpointAssignmentPrecedence}} method is used. See
          {{param|EndpointName}} and {{param|EndpointAddress}} for further
          clarification.
        </description>
        <syntax>
          <string>
            <enumeration value="FQDN">
              <description>
                Derive from {{param|EndpointName}} via a DNS lookup.
              </description>
            </enumeration>
            <enumeration value="IPv6Address">
              <description>
                Use {{param|EndpointAddress}} directly.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="EndpointAddressInUse" access="readOnly" version="2.5">
        <description>
          Indicates the address currently in use for the tunnel concentrator
          (remote endpoint). It is derived from the values of the
          {{param|EndpointAssignmentPrecedence}},
          {{param|EndpointAddressTypePrecedence}}, {{param|EndpointName}} and
          {{param|EndpointAddress}} parameters.

          It is {{empty}} if no endpoint address is currently known.
        </description>
        <syntax>
          <dataType ref="IPv6Address"/>
        </syntax>
      </parameter>

      <parameter name="EndpointName" access="readWrite">
        <description>
          The Fully Qualified Domain Name (FQDN) of the tunnel concentrator
          (remote endpoint).

          This parameter is based on ''OPTION_DS_LITE_NAME'' from
          {{bibref|DSLite-options|Section 4}} and can be assigned statically
          (e.g. present in the factory default configuration or set by the
          Controller) or can be updated dynamically (via DHCPv6). If both
          statically and dynamically assigned, then
          {{param|EndpointAssignmentPrecedence}} indicates whether it is the
          static configuration or the DHCPv6 configuration that is actually
          applied to {{param}}.

          Note: {{param}} is only writable when
          {{param|EndpointAssignmentPrecedence}} is
          {{enum|Static|EndpointAssignmentPrecedence}}; otherwise, {{param}} is
          automatically configured via the DHCPv6 received option.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="EndpointAddress" access="readWrite">
        <description>
          The address of the tunnel concentrator (remote endpoint).

          This parameter can only be assigned statically (e.g. present in the
          factory default configuration or set by the Controller).
        </description>
        <syntax>
          <dataType ref="IPv6Address"/>
        </syntax>
      </parameter>

      <parameter name="Origin" access="readOnly">
        <description>
          Method used to assign {{param|EndpointAddressInUse}}.
        </description>
        <syntax>
          <string>
            <enumeration value="DHCPv6">
              <description>Assigned by DHCPv6 {{bibref|RFC8415}}.</description>
            </enumeration>
            <enumeration value="Static">
              <description>
                For example, present in the factory default configuration, set
                by the Controller, or set by some other management entity (e.g.
                via a GUI).
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="TunnelInterface" access="readOnly">
        <description>
          {{reference}} This is an IP interface of ''Type''
          {{enum|Tunnel|##.IP.Interface.{i}.Type}} that is logically the tunnel
          entry point for upstream IPv4 traffic and is also logically the
          tunnel exit point for downstream IPv4 traffic (i.e. the entry point
          for non-tunneled upstream IPv4 traffic to enter a tunnel and become
          tunneled, or conversely, the exit point for downstream IPv4 traffic
          leaving a tunnel after being un-tunneled).

          IPv4 traffic that enters {{param}} is expected to continue on through
          {{param|TunneledInterface}} from the LAN, and traffic from the WAN is
          expected to come from TunneledInterface into TunnelInterface.
          TunnelInterface is a logical interface that can allow for
          classification, marking (of IPv4 headers), and policing of IPv4
          traffic that will be going over a DS-Lite tunnel. These functions are
          modeled in the Device.QoS object.

          Note: In DS-Lite, IPv4 packets arriving over one or more device LAN
          IP interfaces are logically fed into this {{param}}. Likewise,
          DS-Lite traffic from the WAN gets logically sent from this {{param}}
          to LAN IP interfaces.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="##.IP.Interface."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="TunneledInterface" access="readOnly">
        <description>
          {{reference}} This is an IP interface of ''Type''
          {{enum|Tunneled|##.IP.Interface.{i}.Type}} that provides information
          about the IPv6 headers used to encapsulate the IPv4 packets.

          Encapsulated IPv4 traffic that enters {{param}} from the WAN is
          expected to continue on through {{param|TunnelInterface}}, and
          traffic from the LAN is expected to come from
          {{param|TunnelInterface}} into {{param}}. {{param}} is a logical
          interface that can allow for classification, marking (of IPv6 headers
          and VLAN tags), and policing of IPv6 packets that encapsulate IPv4
          packets in DS-Lite traffic. These functions are modeled in the
          {{object|##.QoS}} object.

          Note: In DS-Lite, {{param}} traffic originating from the LAN
          logically feeds into a WAN-side IPv6 capable IP interface that the
          "DSLite IPv4-in-IPv6 tunnel" goes over. DS-Lite traffic that enters
          over this IPv6 WAN interface gets logically sent to this {{param}}.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="##.IP.Interface."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.QoS." access="readOnly" minEntries="1" maxEntries="1"
        version="2.0">
      <description>
        Queue management configuration object.
      </description>

      <parameter name="MaxClassificationEntries" access="readOnly">
        <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">
        <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">
        <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">
        <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">
        <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">
        <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="MaxSchedulerEntries" access="readOnly" version="2.16">
        <description>
          The maximum number of entries available in the {{object|Scheduler}}
          table.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SchedulerNumberOfEntries" access="readOnly"
          version="2.16">
        <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 {{bibref|802.1Q-2011}}) 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="DefaultInnerEthernetPriorityMark" access="readWrite"
          version="2.7">
        <description>
          Ethernet priority code (as defined in {{bibref|802.1Q-2011}}) to mark
          traffic of the inner VLAN Tag as defined in 802.1Q, when the PDU is
          not associated with any specified classifier. This parameter is only
          applicable when the PDU has 2 VLAN Tags.

          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"
        version="2.0">
      <description>
        Classification table.

        For enabled table entries, if {{param|Interface}} is not a valid
        reference and {{param|AllInterfaces}} is {{false}}, then the table
        entry is inoperable and the CPE MUST set {{param|Status}} to
        {{enum|Error_Misconfigured|Status}}.

        Several of this object's parameters specify DHCP option values. Some
        cases are version neutral (the parameter can apply to both DHCPv4 and
        DHCPv6), but in other cases the representation of the option is
        different for DHCPv4 and DHCPv6, so it is necessary to define separate
        DHCPv4-specific and DHCPv6-specific parameters. Therefore, an instance
        of this object that uses DHCP option values as classification criteria
        will be associated with either DHCPv4 or DHCPv6, as indicated by the
        {{param|DHCPType}} parameter.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="Status" access="readOnly">
        <description>
          The status of this classifier. {{enum}}

          The {{enum|Error_Misconfigured}} value indicates that a necessary
          configuration value is undefined or invalid.

          The {{enum|Error}} value MAY be used by the CPE to indicate a locally
          defined error condition.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Enabled"/>
            <enumeration value="Error_Misconfigured"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

      <parameter name="Order" access="readWrite">
        <description>
          {{datatype|expand}}

          For each packet, the highest ordered entry that matches the
          classification criteria is applied. All lower order entries are
          ignored.
        </description>
        <syntax>
          <dataType ref="Order"/>
        </syntax>
      </parameter>

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

      <parameter name="DHCPType" access="readWrite" version="2.2">
        <description>
          The DHCP protocol associated with the {{object}} instance. Affects
          only parameters that specify DHCP option values as classification
          criteria (all such parameter descriptions note this fact). {{enum}}

          If {{param}} is {{enum|DHCPv4}}, then {{object}} parameters that are
          DHCPv6-specific are ignored. If {{param}} is {{enum|DHCPv6}}, then
          {{object}} parameters that are DHCPv4-specific are ignored.
        </description>
        <syntax>
          <string>
            <enumeration value="DHCPv4"/>
            <enumeration value="DHCPv6"/>
          </string>
          <default type="object" value="DHCPv4"/>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite">
        <description>
          Classification criterion. {{reference}}

          This specifies the ingress interface associated with the entry. It
          MAY be a layer 1, 2 or 3 interface, however, the types of interfaces
          for which ''Classifications'' can be instantiated is a local matter
          to the CPE.

          Note that this parameter is permitted to reference ''Tunnel''
          instances in order to classify upstream packets that have just been
          encapsulated (such packets are conceptually similar to
          locally-generated traffic). For example, this parameter might
          reference a {{object|##.GRE.Tunnel}} or a {{object|##.MAP.Domain}}
          instance.
        </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="IPVersion" access="readWrite" version="2.16">
        <description>
          Classification criterion.

          Specifies the IP protocol version, following the definitions in
          {{bibref|IANA-ipversionnumbers}}. Valid values are: {{range}}.
        </description>
        <syntax>
          <int>
            <range minInclusive="4" maxInclusive="4">
              <description>
                IPv4
              </description>
            </range>
            <range minInclusive="6" maxInclusive="6">
              <description>
                IPv6
              </description>
            </range>
            <range minInclusive="-1" maxInclusive="-1">
              <description>
                No specific IP version is required
              </description>
            </range>
          </int>
          <default type="object" value="-1"/>
        </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, represented as an IP routing prefix
          using CIDR notation [RFC4632]. The IP address part MUST be {{empty}}
          (and, if specified, MUST be ignored).
        </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, represented as an IP routing prefix using
          CIDR notation [RFC4632]. The IP address part MUST be {{empty}} (and,
          if specified, MUST be ignored).
        </description>
        <syntax>
          <dataType ref="IPPrefix"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SourceIPExclude" access="readWrite">
        <description>
          If {{false}}, the class includes only those packets that match the
          (masked) {{param|SourceIP}} entry, if specified.

          If {{true}}, the class includes all packets except those that match
          the (masked) {{param|SourceIP}} entry, if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Protocol" access="readWrite">
        <description>
          Classification criterion.

          Protocol number. A value of -1 indicates this criterion is not used
          for classification.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="255"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="ProtocolExclude" access="readWrite">
        <description>
          If {{false}}, the class includes only those packets that match the
          {{param|Protocol}} entry, if specified.

          If {{true}}, the class includes all packets except those that match
          the {{param|Protocol}} entry, if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="DestPort" access="readWrite">
        <description>
          Classification criterion.

          Destination port number. A value of -1 indicates this criterion is
          not used for classification.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="65535"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="DestPortRangeMax" access="readWrite">
        <description>
          Classification criterion.

          If specified, indicates the classification criterion is to include
          the port range from {{param|DestPort}} through {{param}} (inclusive).
          If specified, {{param}} MUST be greater than or equal to
          {{param|DestPort}}.

          A value of -1 indicates that no port range is specified.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="65535"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="DestPortExclude" access="readWrite">
        <description>
          If {{false}}, the class includes only those packets that match the
          {{param|DestPort}} entry (or port range), if specified.

          If {{true}}, the class includes all packets except those that match
          the {{param|DestPort}} entry (or port range), if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="SourcePort" access="readWrite">
        <description>
          Classification criterion.

          Source port number. A value of -1 indicates this criterion is not
          used for classification.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="65535"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="SourcePortRangeMax" access="readWrite">
        <description>
          Classification criterion.

          If specified, indicates the classification criterion is to include
          the port range from {{param|SourcePort}} through {{param}}
          (inclusive). If specified, {{param}} MUST be greater than or equal to
          SourcePort.

          A value of -1 indicates that no port range is specified.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="65535"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="SourcePortExclude" access="readWrite">
        <description>
          If {{false}}, the class includes only those packets that match the
          {{param|SourcePort}} entry (or port range), if specified.

          If {{true}}, the class includes all packets except those that match
          the {{param|SourcePort}} entry (or port range), if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="SourceMACAddress" access="readWrite">
        <description>
          Classification criterion.

          Source MAC Address. {{empty}} indicates this criterion is not used
          for classification.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SourceMACMask" access="readWrite">
        <description>
          Bit-mask for the MAC address, where matching of a packet's MAC
          address with the {{param|SourceMACAddress}} is only to be done for
          bit positions set to one in the mask. A mask of ''FF:FF:FF:FF:FF:FF''
          or {{empty}} indicates all bits of the {{param|SourceMACAddress}} are
          to be used for classification.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SourceMACExclude" access="readWrite">
        <description>
          If {{false}}, the class includes only those packets that match the
          (masked) {{param|SourceMACAddress}} entry, if specified.

          If {{true}}, the class includes all packets except those that match
          the (masked) {{param|SourceMACAddress}} entry, if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="DestMACAddress" access="readWrite">
        <description>
          Classification criterion.

          Destination MAC Address. {{empty}} indicates this criterion is not
          used for classification.

          The use of destination MAC address as a classification criterion is
          primarily useful only for bridged traffic.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DestMACMask" access="readWrite">
        <description>
          Bit-mask for the MAC address, where matching of a packet's MAC
          address with the {{param|DestMACAddress}} is only to be done for bit
          positions set to one in the mask. A mask of ''FF:FF:FF:FF:FF:FF'' or
          {{empty}} indicates all bits of the {{param|DestMACAddress}} are to
          be used for classification.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DestMACExclude" access="readWrite">
        <description>
          If {{false}}, the class includes only those packets that match the
          (masked) {{param|DestMACAddress}} entry, if specified.

          If {{true}}, the class includes all packets except those that match
          the (masked) {{param|DestMACAddress}} entry, if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Ethertype" access="readWrite">
        <description>
          Classification criterion.

          Ethertype as indicated in either the Ethernet or SNAP Type header. A
          value of -1 indicates this criterion is not used for classification.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="EthertypeExclude" access="readWrite">
        <description>
          If {{false}}, the class includes only those packets that match the
          {{param|Ethertype}} entry, if specified.

          If {{true}}, the class includes all packets except those that match
          the {{param|Ethertype}} entry, if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="SSAP" access="readWrite">
        <description>
          Classification criterion.

          SSAP element in the LLC header. A value of -1 indicates this
          criterion is not used for classification.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="SSAPExclude" access="readWrite">
        <description>
          If {{false}}, the class includes only those packets that match the
          {{param|SSAP}} entry, if specified.

          If {{true}}, the class includes all packets except those that match
          the {{param|SSAP}} entry, if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="DSAP" access="readWrite">
        <description>
          Classification criterion.

          DSAP element in the LLC header. A value of -1 indicates this
          criterion is not used for classification.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="DSAPExclude" access="readWrite">
        <description>
          If {{false}}, the class includes only those packets that match the
          {{param|DSAP}} entry, if specified.

          If {{true}}, the class includes all packets except those that match
          the {{param|DSAP}} entry, if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="LLCControl" access="readWrite">
        <description>
          Classification criterion.

          Control element in the LLC header. A value of -1 indicates this
          criterion is not used for classification.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="LLCControlExclude" access="readWrite">
        <description>
          If {{false}}, the class includes only those packets that match the
          {{param|LLCControl}} entry, if specified.

          If {{true}}, the class includes all packets except those that match
          the {{param|LLCControl}} entry, if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="SNAPOUI" access="readWrite">
        <description>
          Classification criterion.

          OUI element in the SNAP header. A value of -1 indicates this
          criterion is not used for classification.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="SNAPOUIExclude" access="readWrite">
        <description>
          If {{false}}, the class includes only those packets that match the
          {{param|SNAPOUI}} entry, if specified.

          If {{true}}, the class includes all packets except those that match
          the {{param|SNAPOUI}} entry, if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="SourceVendorClassID" access="readWrite">
        <description>
          Classification criterion.

          Used to identify one or more LAN devices, value of the DHCPv4 Vendor
          Class Identifier (Option 60) as defined in {{bibref|RFC2132}},
          matched according to the criterion in
          {{param|SourceVendorClassIDMode}}. Case sensitive.

          This is a normal string, e.g. "abc" is represented as "abc" and not
          say "616263" hex. However, if the value includes non-printing
          characters then such characters have to be represented using XML
          escapes, e.g. #x0a for line-feed.

          {{empty}} indicates this criterion is not used for classification.

          Note: This parameter is DHCPv4-specific. It only applies when
          {{param|DHCPType}} is {{enum|DHCPv4|DHCPType}}.
        </description>
        <syntax>
          <string>
            <size maxLength="255"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SourceVendorClassIDv6" access="readWrite" version="2.2">
        <description>
          Classification criterion.

          A hexbinary string used to identify one or more LAN devices, value of
          the DHCPv6 Vendor Class Identifier (Option 16) as defined in
          {{bibref|RFC8415}}. The option value is binary, so an exact match is
          REQUIRED.

          {{empty}} indicates this criterion is not used for classification.

          Note: This parameter is DHCPv6-specific. It only applies when
          {{param|DHCPType}} is {{enum|DHCPv6|DHCPType}}.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="65535"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SourceVendorClassIDExclude" access="readWrite">
        <description>
          If {{false}}, the class includes only those packets sourced from LAN
          devices that match the {{param|SourceVendorClassID}} entry (for
          {{enum|DHCPv4|DHCPType}}) or the {{param|SourceVendorClassIDv6}}
          entry (for {{enum|DHCPv6|DHCPType}}), if specified.

          If {{true}}, the class includes all packets except those sourced from
          LAN devices that match the {{param|SourceVendorClassID}} entry (for
          {{enum|DHCPv4|DHCPType}}) or the {{param|SourceVendorClassIDv6}}
          entry (for {{enum|DHCPv6|DHCPType}}), if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="SourceVendorClassIDMode" access="readWrite">
        <description>
          SourceVendorClassID pattern match criterion. {{enum}}

          For example, if {{param|SourceVendorClassID}} is "Example" then an
          Option 60 value of "Example device" will match with {{param}} values
          of {{enum|Prefix}} or {{enum|Substring}}, but not with {{enum|Exact}}
          or {{enum|Suffix}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Exact"/>
            <enumeration value="Prefix"/>
            <enumeration value="Suffix"/>
            <enumeration value="Substring"/>
          </string>
          <default type="object" value="Exact"/>
        </syntax>
      </parameter>

      <parameter name="DestVendorClassID" access="readWrite">
        <description>
          Classification criterion.

          Used to identify one or more LAN devices, value of the DHCPv4 Vendor
          Class Identifier (Option 60) as defined in {{bibref|RFC2132}},
          matched according to the criterion in
          {{param|DestVendorClassIDMode}}. Case sensitive.

          This is a normal string, e.g. "abc" is represented as "abc" and not
          say "616263" hex. However, if the value includes non-printing
          characters then such characters have to be represented using XML
          escapes, e.g. #x0a for line-feed.

          {{empty}} indicates this criterion is not used for classification.

          Note: This parameter is DHCPv4-specific. It only applies when
          {{param|DHCPType}} is {{enum|DHCPv4|DHCPType}}.
        </description>
        <syntax>
          <string>
            <size maxLength="255"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DestVendorClassIDv6" access="readWrite" version="2.2">
        <description>
          Classification criterion.

          A hexbinary string used to identify one or more LAN devices, value of
          the DHCPv6 Vendor Class Identifier (Option 16) as defined in
          {{bibref|RFC8415}}. The option value is binary, so an exact match is
          REQUIRED.

          {{empty}} indicates this criterion is not used for classification.

          Note: This parameter is DHCPv6-specific. It only applies when
          {{param|DHCPType}} is {{enum|DHCPv6|DHCPType}}.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="65535"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DestVendorClassIDExclude" access="readWrite">
        <description>
          If {{false}}, the class includes only those packets destined for LAN
          devices that match the {{param|DestVendorClassID}} entry (for
          {{enum|DHCPv4|DHCPType}}) or the {{param|DestVendorClassIDv6}} entry
          (for {{enum|DHCPv6|DHCPType}}), if specified.

          If {{true}}, the class includes all packets except those destined for
          LAN devices that match the {{param|DestVendorClassID}} entry (for
          {{enum|DHCPv4|DHCPType}}) or the {{param|DestVendorClassIDv6}} entry
          (for {{enum|DHCPv6|DHCPType}}), if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="DestVendorClassIDMode" access="readWrite">
        <description>
          {{param|DestVendorClassID}} pattern match criterion. {{enum}}

          For example, if {{param|DestVendorClassID}} is "Example" then an
          Option 60 value of "Example device" will match with {{param}} values
          of {{enum|Prefix}} or {{enum|Substring}}, but not with {{enum|Exact}}
          or {{enum|Suffix}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Exact"/>
            <enumeration value="Prefix"/>
            <enumeration value="Suffix"/>
            <enumeration value="Substring"/>
          </string>
          <default type="object" value="Exact"/>
        </syntax>
      </parameter>

      <parameter name="SourceClientID" access="readWrite">
        <description>
          Classification criterion.

          A hexbinary string used to identify one or more LAN devices, value of
          the DHCP Client Identifier. The DHCP Client Identifier is Option 61
          (as defined in {{bibref|RFC2132}}) for {{enum|DHCPv4|DHCPType}}, or
          is Option 1 (as defined in {{bibref|RFC8415}}) for
          {{enum|DHCPv6|DHCPType}}. The option value is binary, so an exact
          match is REQUIRED.

          {{empty}} indicates this criterion is not used for classification.

          Note: DHCPv4 Option values are limited to a length of 255, while
          DHCPv6 Option values can have a maximum length of 65535.

          Note: This parameter is DHCP version neutral. The specific DHCP
          version in use with this parameter is indicated by
          {{param|DHCPType}}.

          Note: DHCPv6 Option 1 (Client Identifier) is sometimes referred to as
          ''DUID''.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="65535"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SourceClientIDExclude" access="readWrite">
        <description>
          If {{false}}, the class includes only those packets sourced from LAN
          devices that match the {{param|SourceClientID}} entry, if specified.

          If {{true}}, the class includes all packets except those sourced from
          LAN devices that match the {{param|SourceClientID}} entry, if
          specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="DestClientID" access="readWrite">
        <description>
          Classification criterion.

          A hexbinary string used to identify one or more LAN devices, value of
          the DHCP Client Identifier. The DHCP Client Identifier is Option 61
          (as defined in {{bibref|RFC2132}}) for {{enum|DHCPv4|DHCPType}}, or
          is Option 1 (as defined in {{bibref|RFC8415}}) for
          {{enum|DHCPv6|DHCPType}}. The option value is binary, so an exact
          match is REQUIRED.

          {{empty}} indicates this criterion is not used for classification.

          Note: DHCPv4 Option values are limited to a length of 255, while
          DHCPv6 Option values can have a maximum length of 65535.

          Note: This parameter is DHCP version neutral. The specific DHCP
          version in use with this parameter is indicated by
          {{param|DHCPType}}.

          Note: DHCPv6 Option 1 (Client Identifier) is sometimes referred to as
          ''DUID''.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="65535"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DestClientIDExclude" access="readWrite">
        <description>
          If {{false}}, the class includes only those packets destined for LAN
          devices that match the {{param|DestClientID}} entry, if specified.

          If {{true}}, the class includes all packets except those destined for
          LAN devices that match the {{param|DestClientID}} entry, if
          specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="SourceUserClassID" access="readWrite">
        <description>
          Classification criterion.

          A hexbinary string used to identify one or more LAN devices, value of
          the DHCP User Class Identifier. The DHCP User Class Identifier is
          Option 77 (as defined in {{bibref|RFC3004}}) for
          {{enum|DHCPv4|DHCPType}}, or is Option 15 (as defined in
          {{bibref|RFC8415}}) for {{enum|DHCPv6|DHCPType}}. The option value is
          binary, so an exact match is REQUIRED.

          {{empty}} indicates this criterion is not used for classification.

          Note: DHCPv4 Option values are limited to a length of 255, while
          DHCPv6 Option values can have a maximum length of 65535.

          Note: This parameter is DHCP version neutral. The specific DHCP
          version in use with this parameter is indicated by
          {{param|DHCPType}}.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="65535"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SourceUserClassIDExclude" access="readWrite">
        <description>
          If {{false}}, the class includes only those packets sourced from LAN
          devices that match the {{param|SourceUserClassID}} entry, if
          specified.

          If {{true}}, the class includes all packets except those sourced from
          LAN devices that match the {{param|SourceUserClassID}} entry, if
          specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="DestUserClassID" access="readWrite">
        <description>
          Classification criterion.

          A hexbinary string used to identify one or more LAN devices, value of
          the DHCP User Class Identifier. The DHCP User Class Identifier is
          Option 77 (as defined in {{bibref|RFC3004}}) for
          {{enum|DHCPv4|DHCPType}}, or is Option 15 (as defined in
          {{bibref|RFC8415}}) for {{enum|DHCPv6|DHCPType}}. The option value is
          binary, so an exact match is REQUIRED.

          {{empty}} indicates this criterion is not used for classification.

          Note: DHCPv4 Option values are limited to a length of 255, while
          DHCPv6 Option values can have a maximum length of 65535.

          Note: This parameter is DHCP version neutral. The specific DHCP
          version in use with this parameter is indicated by
          {{param|DHCPType}}.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="65535"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DestUserClassIDExclude" access="readWrite">
        <description>
          If {{false}}, the class includes only those packets destined for LAN
          devices that match the {{param|DestUserClassID}} entry, if specified.

          If {{true}}, the class includes all packets except those destined for
          LAN devices that match the {{param|DestUserClassID}} entry, if
          specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="SourceVendorSpecificInfo" access="readWrite">
        <description>
          Classification criterion.

          A hexbinary string used to identify one or more LAN devices, value of
          the DHCP Vendor-specific Information, matched according to the
          criteria in {{param|SourceVendorSpecificInfoEnterprise}} and
          {{param|SourceVendorSpecificInfoSubOption}}. The DHCP Vendor-specific
          Information is Option 125 (as defined in {{bibref|RFC3925}}) for
          {{enum|DHCPv4|DHCPType}}, or is Option 17 (as defined in
          {{bibref|RFC8415}}) for {{enum|DHCPv6|DHCPType}}.

          {{empty}} indicates this criterion is not used for classification.

          Note: DHCPv4 Option values are limited to a length of 255, while
          DHCPv6 Option values can have a maximum length of 65535.

          Note: This parameter is DHCP version neutral. The specific DHCP
          version in use with this parameter is indicated by
          {{param|DHCPType}}.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="65535"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SourceVendorSpecificInfoExclude" access="readWrite">
        <description>
          If {{false}}, the class includes only those packets sourced from LAN
          devices that match the {{param|SourceVendorSpecificInfo}} entry, if
          specified.

          If {{true}}, the class includes all packets except those sourced from
          LAN devices that match the {{param|SourceVendorSpecificInfo}} entry,
          if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="SourceVendorSpecificInfoEnterprise" access="readWrite">
        <description>
          {{param|SourceVendorSpecificInfo}} Enterprise Number as defined in
          {{bibref|RFC3925}}.

          The default value (0) is assigned to IANA and will probably need to
          be replaced with an appropriate enterprise number.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="SourceVendorSpecificInfoSubOption" access="readWrite">
        <description>
          {{param|SourceVendorSpecificInfo}} Sub Option Code as defined in
          {{bibref|RFC3925}}.
        </description>
        <syntax>
          <int>
            <range minInclusive="0" maxInclusive="255"/>
          </int>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="DestVendorSpecificInfo" access="readWrite">
        <description>
          Classification criterion.

          A hexbinary string used to identify one or more LAN devices, value of
          the DHCP Vendor-specific Information, matched according to the
          criteria in {{param|DestVendorSpecificInfoEnterprise}} and
          {{param|DestVendorSpecificInfoSubOption}}. The DHCP Vendor-specific
          Information is Option 125 (as defined in {{bibref|RFC3925}}) for
          {{enum|DHCPv4|DHCPType}}, or is Option 17 (as defined in
          {{bibref|RFC8415}}) for {{enum|DHCPv6|DHCPType}}.

          {{empty}} indicates this criterion is not used for classification.

          Note: DHCPv4 Option values are limited to a length of 255, while
          DHCPv6 Option values can have a maximum length of 65535.

          Note: This parameter is DHCP version neutral. The specific DHCP
          version in use with this parameter is indicated by
          {{param|DHCPType}}.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="65535"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DestVendorSpecificInfoExclude" access="readWrite">
        <description>
          If {{false}}, the class includes only those packets destined for LAN
          devices that match the {{param|DestVendorSpecificInfo}} entry, if
          specified.

          If {{true}}, the class includes all packets except those destined for
          LAN devices that match the {{param|DestVendorSpecificInfo}} entry, if
          specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="DestVendorSpecificInfoEnterprise" access="readWrite">
        <description>
          {{param|DestVendorSpecificInfo}} Enterprise Number as defined in
          {{bibref|RFC3925}}.

          The default value (0) is assigned to IANA and will probably need to
          be replaced with an appropriate enterprise number.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="DestVendorSpecificInfoSubOption" access="readWrite">
        <description>
          {{param|DestVendorSpecificInfo}} Sub Option Code as defined in
          {{bibref|RFC3925}}.
        </description>
        <syntax>
          <int>
            <range minInclusive="0" maxInclusive="255"/>
          </int>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="TCPACK" access="readWrite">
        <description>
          Classification criterion.

          If {{false}}, this criterion is not used for classification.

          If {{true}}, this criterion matches with all TCP segments that have
          the ACK control bit set.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="TCPACKExclude" access="readWrite">
        <description>
          If {{false}}, the class includes only those packets that match the
          {{param|TCPACK}} entry, if specified.

          If {{true}}, the class includes all packets except those that match
          the {{param|TCPACK}} entry, if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="IPLengthMin" access="readWrite">
        <description>
          Classification criterion.

          Minimum IP Packet Length (including header) in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="bytes"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="IPLengthMax" access="readWrite">
        <description>
          Classification criterion.

          Maximum IP Packet Length (including header) in {{units}}.

          A value of zero indicates that no maximum is specified (an umlimited
          maximum length).
        </description>
        <syntax>
          <unsignedInt>
            <units value="bytes"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="IPLengthExclude" access="readWrite">
        <description>
          If {{false}}, the class includes only those packets whose length
          (including header) falls within the inclusive range
          {{param|IPLengthMin}} through {{param|IPLengthMax}}. A value of zero
          for both {{param|IPLengthMin}} and {{param|IPLengthMax}} allows any
          length packet. An equal non-zero value of {{param|IPLengthMin}} and
          {{param|IPLengthMax}} allows only a packet with the exact length
          specified.

          If {{true}}, the class includes all packets except those whose length
          (including header) falls within the inclusive range
          {{param|IPLengthMin}} through {{param|IPLengthMax}}.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="DSCPCheck" access="readWrite">
        <description>
          Classification criterion.

          DiffServ codepoint (defined in {{bibref|RFC2474}}).

          If set to a Class Selector Codepoint (defined in {{bibref|RFC2474}}),
          all DSCP values that match the first 3 bits will be considered a
          valid match.

          A value of -1 indicates this criterion is not used for
          classification.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="63"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="DSCPExclude" access="readWrite">
        <description>
          If {{false}}, the class includes only those packets that match the
          {{param|DSCPCheck}} entry, if specified.

          If {{true}}, the class includes all packets except those that match
          the {{param|DSCPCheck}} entry, if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="DSCPMark" access="readWrite">
        <description>
          Classification result.

          DSCP to mark traffic with that falls into this classification entry.

          A value of -1 indicates no change from the incoming packet.

          A value of -2 indicates automatic marking of DSCP based upon the
          EthernetPriority value of the incoming packet as defined in
          {{bibref|TR-181i2|Annex A}}.
        </description>
        <syntax>
          <int>
            <range minInclusive="-2"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="EthernetPriorityCheck" access="readWrite">
        <description>
          Classification criterion.

          Current Ethernet priority of a VLAN Tag as defined in
          {{bibref|802.1Q-2011}} or Ethernet Priority field as defined in
          802.1D. If more than 1 VLAN tag is present, then this parameter
          represents the outer VLAN Tag. 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 {{bibref|802.1Q-2011}}) to mark
          traffic with that falls into this classification entry associated
          with the {{param|EthernetPriorityCheck}}.

          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="InnerEthernetPriorityCheck" access="readWrite"
          version="2.7">
        <description>
          Classification criterion.

          Current Ethernet priority of the inner VLAN Tag as defined in 802.1Q.
          This parameter is only applicable when the PDU has 2 VLAN Tags. 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="InnerEthernetPriorityExclude" access="readWrite"
          version="2.7">
        <description>
          If {{false}}, the class includes only those packets that match the
          {{param|InnerEthernetPriorityCheck}} entry, if specified.

          If {{true}}, the class includes all packets except those that match
          the {{param|InnerEthernetPriorityCheck}} entry, if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="InnerEthernetPriorityMark" access="readWrite"
          version="2.7">
        <description>
          Classification result.

          Ethernet priority code to mark traffic with that falls into this
          classification entry associated with the
          {{param|InnerEthernetPriorityCheck}}.

          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="EthernetDEICheck" access="readWrite" version="2.7">
        <description>
          Classification criterion.

          Current Ethernet Drop eligible Indication (DEI) of the VLAN tag as
          defined in 802.1Q. If 2 VLAN Tags are present, then this parameter
          represents the outer VLAN tag. 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="EthernetDEIExclude" access="readWrite" version="2.7">
        <description>
          If {{false}}, the class includes only those packets that match the
          {{param|EthernetDEICheck}} entry, if specified.

          If {{true}}, the class includes all packets except those that match
          the {{param|EthernetDEICheck}} entry, if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </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" version="2.0">
      <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" version="2.0">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </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 {{bibref|802.1Q-2011}}) 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>

      <parameter name="DefaultInnerEthernetPriorityMark" access="readWrite"
          version="2.7">
        <description>
          Ethernet priority code (as defined in {{bibref|802.1Q-2011}}) to mark
          the inner VLAN Tags as defined in 802.1Q with this {{object}} table
          entry where the packet is not associated with any specified flow.
          This parameter is only applicable when the PDU has 2 VLAN Tags.

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

    <object name="Device.QoS.Flow.{i}." access="readWrite"
        numEntriesParameter="FlowNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.0">
      <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" version="2.0">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </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>
          Each entry is a name-value pair 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>
          <list/>
          <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 {{bibref|802.1Q-2011}}) 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>

      <parameter name="InnerEthernetPriorityMark" access="readWrite"
          version="2.7">
        <description>
          Ethernet priority code (as defined in {{bibref|802.1Q-2011}}) to mark
          the inner VLAN Tags with for traffic 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" version="2.0">
      <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" version="2.0">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="CommittedRate" access="readWrite">
        <description>
          Committed rate allowed for this policer in {{units}}.

          Note: To be able to support higher bit rates, this parameter was
          changed to unsignedLong in the Device:2.18 version.
        </description>
        <syntax>
          <unsignedLong>
            <units value="bits per second"/>
          </unsignedLong>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="CommittedBurstSize" access="readWrite">
        <description>
          Committed Burstsize in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="bytes"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="ExcessBurstSize" access="readWrite">
        <description>
          Excess Burstsize in {{units}}.

          Applied for a {{enum|SingleRateThreeColor|MeterType}} meter.
        </description>
        <syntax>
          <unsignedInt>
            <units value="bytes"/>
          </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.

          Note: To be able to support higher bit rates, this parameter was
          changed to unsignedLong in the Device:2.18 version.
        </description>
        <syntax>
          <unsignedLong>
            <units value="bits per second"/>
          </unsignedLong>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="PeakBurstSize" access="readWrite">
        <description>
          Peak Burstsize in {{units}}.

          Applied for {{enum|TwoRateThreeColor|MeterType}} meters.
        </description>
        <syntax>
          <unsignedInt>
            <units value="bytes"/>
          </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|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">
        <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" version="2.0">
      <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" version="2.0">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Children" access="readWrite" version="2.16">
        <description>
          {{list}} Each reference can be associated with another
          {{object|##.QoS.Queue.{i}}}, {{object|##.QoS.Shaper.{i}}},
          {{object|##.QoS.Scheduler.{i}}} instance object. The references in
          this parameter are used to build a hierarchy.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetType="row"/>
          </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 {{units}} 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>
            <units value="bytes"/>
          </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.

          Note: To be able to support higher bit rates, this parameter was
          changed to unsignedLong in the Device:2.18 version.
        </description>
        <syntax>
          <long>
            <range minInclusive="-1"/>
          </long>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="CurrentShapingRate" access="readOnly" version="2.16">
        <description>
          If the Queue is active, the CurrentShapingRate must reflect the
          actual configured ShapingRate, in {{units}} per second. -1 means no
          rate due to do Queue not active.

          Note: To be able to support higher bit rates, this parameter was
          changed to unsignedLong in the Device:2.18 version.
        </description>
        <syntax>
          <long>
            <range minInclusive="-1"/>
            <units value="bits per second"/>
          </long>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="AssuredRate" access="readWrite" version="2.16">
        <description>
          Minimum rate to shape this queue's traffic to.

          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.

          Note: To be able to support higher bit rates, this parameter was
          changed to unsignedLong in the Device:2.18 version.
        </description>
        <syntax>
          <long>
            <range minInclusive="-1"/>
          </long>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="CurrentAssuredRate" access="readOnly" version="2.16">
        <description>
          If the Queue is active, the CurrentAssuredRate must reflect the
          actual configured AssuredRate, in bits per second. -1 means no rate
          due to do Queue not active.

          Note: To be able to support higher bit rates, this parameter was
          changed to unsignedLong in the Device:2.18 version.
        </description>
        <syntax>
          <long>
            <range minInclusive="-1"/>
          </long>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="ShapingBurstSize" access="readWrite">
        <description>
          Burst size in {{units}}. 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>
            <units value="bytes"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.QoS.QueueStats.{i}." access="readWrite"
        numEntriesParameter="QueueStatsNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded"
        version="2.0">
      <description>
        Queue statistics table. This table is managed by the Controller, 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 functional="true">
        <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" version="2.0">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </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 {{units}} output through the queue.
        </description>
        <syntax>
          <unsignedInt>
            <units value="bytes"/>
          </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 {{units}} dropped by the queue.
        </description>
        <syntax>
          <unsignedInt>
            <units value="bytes"/>
          </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" version="2.0">
      <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 functional="true">
        <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" version="2.0">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Children" access="readWrite" version="2.16">
        <description>
          {{list}} Each reference can be associated with another
          {{object|##.QoS.Queue.{i}}}, {{object|##.QoS.Shaper.{i}}},
          {{object|##.QoS.Scheduler.{i}}} instance object. The references in
          this parameter are used to build a hierarchy.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetType="row"/>
          </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.

          Note: To be able to support higher bit rates, this parameter was
          changed to unsignedLong in the Device:2.18 version.
        </description>
        <syntax>
          <long>
            <range minInclusive="-1"/>
          </long>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="ShapingBurstSize" access="readWrite">
        <description>
          Burst size in {{units}}. 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>
            <units value="bytes"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.QoS.Scheduler.{i}." access="readWrite"
        numEntriesParameter="SchedulerNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.16">
      <description>
        Scheduler table. Each entry is used to model a scheduler object.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="Status" access="readOnly">
        <description>
          The status of this scheduler. {{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" version="2.16">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Children" access="readWrite" version="2.16">
        <description>
          {{list}} Each reference can be associated with another
          {{object|##.QoS.Queue.{i}}}, {{object|##.QoS.Shaper.{i}}},
          {{object|##.QoS.Scheduler.{i}}} instance object. The references in
          this parameter are used to build a hierarchy.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetType="row"/>
          </string>
        </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="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 scheduler'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.

          Note: To be able to support higher bit rates, this parameter was
          changed to unsignedLong in the Device:2.18 version.
        </description>
        <syntax>
          <long>
            <range minInclusive="-1"/>
          </long>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="AssuredRate" access="readWrite">
        <description>
          Minimum guaranteed rate to shape this scheduler's traffic to.

          Must be &gt; 0 and &lt; ShapingRate, for a valid rate.

          A value of -1 indicates the ShapingRate's value is not used.

          Note: To be able to support higher bit rates, this parameter was
          changed to unsignedLong in the Device:2.18 version.
        </description>
        <syntax>
          <long>
            <range minInclusive="-1"/>
          </long>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="DefaultQueue" access="readWrite">
        <description>
          The value MUST be the Path Name for a {{object|##.QoS.Queue.{i}}}
          instance. If the referenced object is deleted, the parameter value
          MUST be set to an empty string.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.LANConfigSecurity." access="readOnly" minEntries="1"
        maxEntries="1" version="2.0">
      <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 secured="true">
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Hosts." access="readOnly" minEntries="1"
        maxEntries="1" version="2.0">
      <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>

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

    <object name="Device.Hosts.Host.{i}." access="readOnly"
        numEntriesParameter="HostNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.0">
      <description>
        Host table.
      </description>
      <uniqueKey functional="true">
        <parameter ref="PhysAddress"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.0"
          status="deleted">
        <description>
          {{datatype|expand}}

          {{deprecated|2.11|because {{object}} is a transient object}}

          {{obsoleted|2.14}}

          {{deleted|2.15}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="PhysAddress" access="readOnly">
        <description>
          Unique physical identifier of the host. For many layer 2 technologies
          this is typically a MAC address.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="IPAddress" access="readOnly">
        <description>
          Current IP Address of the host. {{empty}} if no address is available.

          If more than one IP address for this host is known, the CPE will
          choose a ''primary'' address. All known IP addresses can be listed in
          the {{object|IPv4Address}} and {{object|IPv6Address}} tables.
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
        </syntax>
      </parameter>

      <parameter name="AddressSource" access="readOnly" status="deleted">
        <description>
          Indicates whether the IP address of the host was allocated by the CPE
          using DHCP, was assigned to the host statically, or was assigned
          using automatic IP address allocation. {{enum}}

          {{deprecated|2.11|because only {{enum|None}} and {{enum|DHCP}} made
          sense (the CPE doesn't know whether the address is {{enum|Static}} or
          {{enum|AutoIP}}). The {{enum|DHCP}} case is now handled via the
          {{param|DHCPClient}} reference}}

          {{obsoleted|2.14}}

          {{deleted|2.15}}
        </description>
        <syntax>
          <string>
            <enumeration value="DHCP"/>
            <enumeration value="Static"/>
            <enumeration value="AutoIP"/>
            <enumeration value="None"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="DHCPClient" access="readOnly" version="2.2">
        <description>
          {{reference}} Each list item is the DHCPv4 or DHCPv6 server's client
          entry that corresponds to the host.
        </description>
        <syntax>
          <list maxItems="2">
            <size/>
          </list>
          <string>
            <pathRef
                refType="strong"
                targetParent="
                  ##.DHCPv4.Server.Pool.{i}.Client.
                  ##.DHCPv6.Server.Pool.{i}.Client."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LeaseTimeRemaining" access="readOnly" status="deleted">
        <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}}.

          {{deprecated|2.11|because DHCP lease/lifetime information can be
          accessed via the {{param|DHCPClient}} reference}}

          {{obsoleted|2.14}}

          {{deleted|2.15}}
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
            <units value="seconds"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="AssociatedDevice" access="readOnly" version="2.2">
        <description>
          {{noreference}}The value MUST be the path name of the
          ''AssociatedDevice'' (or equivalent) table row that models the host,
          or {{null}} if either there is no such table or the host isn't
          directly connected to this device (e.g. the host is connected to a
          Wi-Fi Access Point).

          For example: ''Device.WiFi.AccessPoint.1.AssociatedDevice.2''
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetType="row"/>
          </string>
        </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. If either the layer 1 interface isn't known or the
          host isn't directly connected to this device (e.g. the host is
          connected to a Wi-Fi Access Point), then {{param}} will be {{null}}.

          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 either the layer 3 interface isn't known or the host
          isn't directly connected to this device (e.g. the host is connected
          to a Wi-Fi Access Point), then {{param}} will be {{null}}.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="##.IP.Interface."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="InterfaceType" access="readOnly" version="2.13">
        <description>
          Type of physical interface through which this host is connected.
        </description>
        <syntax>
          <string>
            <enumeration value="Ethernet"/>
            <enumeration value="G.hn"/>
            <enumeration value="HPNA"/>
            <enumeration value="HomePlug"/>
            <enumeration value="MoCA"/>
            <enumeration value="UPA"/>
            <enumeration value="Wi-Fi"/>
            <enumeration value="Other"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="VendorClassID" access="readOnly" status="deleted">
        <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.

          {{deprecated|2.11|because host-supplied DHCP options can be accessed
          via the {{param|DHCPClient}} reference}}

          {{obsoleted|2.14}}

          {{deleted|2.15}}
        </description>
        <syntax>
          <string>
            <size maxLength="255"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ClientID" access="readOnly" status="deleted">
        <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.

          {{deprecated|2.11|because host-supplied DHCP options can be accessed
          via the {{param|DHCPClient}} reference}}

          {{obsoleted|2.14}}

          {{deleted|2.15}}
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="65535"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="UserClassID" access="readOnly" status="deleted">
        <description>
          A hexbinary string, User Class Identifier DHCP option (Option 77) of
          the host.

          It MAY be defined when {{param|AddressSource|deleted}} 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.

          {{deprecated|2.11|because host-supplied DHCP options can be accessed
          via the {{param|DHCPClient}} reference}}

          {{obsoleted|2.15}}

          {{deleted|2.16}}
        </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.

          Entries in Device.Hosts.Host SHOULD NOT be removed when they become
          inactive if there are {{object|WANStats}} statistics collected for
          the entry in the past seven days.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="ActiveLastChange" access="readOnly" version="2.10">
        <description>
          The datetime when {{param|Active}} last changed from {{true}} to
          {{false}} or from {{false}} to {{true}}. The initial detection of a
          host SHOULD be treated as a transition from {{false}} to {{true}},
          showing the datetime when the host was first detected.

          The ability to list inactive hosts is OPTIONAL. The length of time an
          inactive host remains listed in this table is a local matter to the
          CPE.

          Entries in Device.Hosts.Host SHOULD NOT be removed when they become
          inactive if there are {{object|WANStats}} statistics collected for
          the entry in the past seven days.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="IPv4AddressNumberOfEntries" access="readOnly"
          version="2.2">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

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

    <object name="Device.Hosts.Host.{i}.IPv4Address.{i}." access="readOnly"
        numEntriesParameter="IPv4AddressNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.2">
      <description>
        The host's known IPv4 addresses. This includes any addresses assigned
        via DHCP, which can also be accessed via the {{param|#.DHCPClient}}
        reference.
      </description>
      <uniqueKey functional="true">
        <parameter ref="IPAddress"/>
      </uniqueKey>

      <parameter name="IPAddress" access="readOnly">
        <description>
          IPv4 address.
        </description>
        <syntax>
          <dataType ref="IPv4Address"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Hosts.Host.{i}.IPv6Address.{i}." access="readOnly"
        numEntriesParameter="IPv6AddressNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.2">
      <description>
        The host's known IPv6 addresses. This includes any addresses assigned
        via DHCP, which can also be accessed via the {{param|#.DHCPClient}}
        reference.
      </description>
      <uniqueKey functional="true">
        <parameter ref="IPAddress"/>
      </uniqueKey>

      <parameter name="IPAddress" access="readOnly">
        <description>
          IPv6 address.
        </description>
        <syntax>
          <dataType ref="IPv6Address"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Hosts.Host.{i}.WANStats." access="readOnly"
        minEntries="1" maxEntries="1" version="2.12">
      <description>
        These count bytes or packets at the IP layer sent to the WAN, or
        received from the WAN.
      </description>

      <parameter name="BytesSent" access="readOnly">
        <description>
          The total number of bytes transmitted to the WAN from the Host device
          at the IP layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" access="readOnly">
        <description>
          The total number of bytes received from the WAN and sent to the Host
          device at the IP layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" access="readOnly">
        <description>
          The total number of IP packets transmitted to the WAN from the Host
          device.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" access="readOnly">
        <description>
          The total number of IP packets received from the WAN and sent to the
          Host device.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" access="readOnly">
        <description>
          The total number of outbound IP packets to the WAN from the Host
          device that could not be transmitted because of errors. These may be
          due to the number of retransmissions exceeding the retry limit, or
          from other causes.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="RetransCount" access="readOnly">
        <description>
          The total number of transmitted IP packets to the WAN from the Host
          device which were retransmissions. Two retransmissions of the same
          packet results in this counter incrementing by two.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of outbound IP 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>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Hosts.AccessControl.{i}." access="readWrite"
        numEntriesParameter="AccessControlNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded"
        version="2.14">
      <description>
        Every instance of this object provides access control for a LAN device.

        Access is allowed if no instance of {{object}} is defined for a device.

        If access is not allowed, then the LAN device cannot access the
        broadband network.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="PhysAddress"/>
      </uniqueKey>

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

      <parameter name="Origin" access="readOnly" version="2.17">
        <description>
          Indicates the owner of the {{object}} instance.

          Note: This parameter was changed to writeOnceReadOnly in the
          Device:2.18 version.

          Note: This parameter was reverted back to readOnly in the Device 2.19
          version.
        </description>
        <syntax>
          <string>
            <enumeration value="User">
              <description>
                Used for indicating that the access control rule was created by
                the end-user. For example through the web user interface.
              </description>
            </enumeration>
            <enumeration value="System">
              <description>
                Used for indicating that the access control rule was created by
                the system itself.
              </description>
            </enumeration>
            <enumeration value="Controller">
              <description>
                Used for indicating that the access control rule was created by
                a Controller.
              </description>
            </enumeration>
          </string>
          <default type="object" value="Controller"/>
        </syntax>
      </parameter>

      <parameter name="PhysAddress" access="readWrite">
        <description>
          Unique physical identifier of the device. For many layer 2
          technologies this is typically a MAC address.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="PhysAddressMask" access="readWrite" version="2.17">
        <description>
          Mask to be applied on {{param|PhysAddress}}. When set to
          'FF:FF:FF:FF:FF:FF' the access control rule is applicable to a single
          host. Other possible values 'FF:FF:FF:00:00:00' to apply access
          control to a specific OUI.

          When {{empty}} is set, no mask will be applied and the
          {{param|PhysAddress}} MUST be used as is.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="HostName" access="readWrite">
        <description>
          Any user defined name for the device.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

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

      <parameter name="AccessPolicy" access="readWrite">
        <description>
          Allows or denies access for a device.

          If {{param}} is set to "Allow", device access is allowed based on the
          {{object|.Schedules.Schedule}} objects referenced by the
          {{param|ScheduleRef}} parameter. Access is enabled if there is no
          {{object|.Schedules.Schedule}} object referenced by the
          {{param|ScheduleRef}} parameter.

          If {{param}} is set to "Deny", {{object|.Schedules.Schedule}} objects
          referenced by the {{param|ScheduleRef}} parameter are ignored and no
          access is allowed for the device.
        </description>
        <syntax>
          <string>
            <enumeration value="Allow"/>
            <enumeration value="Deny"/>
          </string>
          <default type="object" value="Allow"/>
        </syntax>
      </parameter>

      <parameter name="ScheduleRef" access="readWrite" version="2.18">
        <description>
          Each reference provides a schedule where time based access can be
          enabled. When {{param}} is {{empty}} the {{object}} is not scheduled,
          and the {{param|Enable}} defines the operational state.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetParent=".Schedules.Schedule."
                targetType="row"/>
          </string>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>

      <parameter name="ScheduleNumberOfEntries" access="readOnly"
          status="deprecated">
        <description>
          {{deprecated|2.18|in favor of {{object|.Schedules.}}}}

          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Hosts.AccessControl.{i}.Schedule.{i}."
        access="readWrite" numEntriesParameter="ScheduleNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded"
        version="2.14" status="deprecated">
      <description>
        {{deprecated|2.18|in favor of {{object|.Schedules.}}}}

        Each instance of this object provides a schedule where access is
        enabled.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

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

      <parameter name="Day" access="readWrite">
        <description>
          {{list|the days for which access is enabled}} {{enum}}
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="Monday"/>
            <enumeration value="Tuesday"/>
            <enumeration value="Wednesday"/>
            <enumeration value="Thursday"/>
            <enumeration value="Friday"/>
            <enumeration value="Saturday"/>
            <enumeration value="Sunday"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="StartTime" access="readWrite">
        <description>
          Start time of the enable schedule in hh:mm format. [hh] refers to a
          zero-padded hour between 00 and 23. [mm] refers to a zero-padded
          minute between 00 and 59.

          Start time is in local time zone.
        </description>
        <syntax>
          <string>
            <size maxLength="5"/>
            <pattern value=""/>
            <pattern value="([01][0-9]|2[0-3]):[0-5][0-9]"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Duration" access="readWrite">
        <description>
          The duration, in {{units}}, which the access is enabled.

          If the {{param|StartTime}} is not defined, duration is the total time
          access is allowed during a calendar day.

          If a {{param|StartTime}} is defined, access is allowed for the
          {{param}} period starting from {{param|StartTime}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DNS." access="readOnly" minEntries="1" maxEntries="1"
        version="2.0">
      <description>
        Properties for Domain Name Service (DNS).
      </description>

      <parameter name="SupportedRecordTypes" access="readOnly" version="2.2">
        <description>
          The DNS record types that are supported by the device. {{enum}}
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="A">
              <description>{{bibref|RFC1035}}</description>
            </enumeration>
            <enumeration value="AAAA">
              <description>{{bibref|RFC3596}}</description>
            </enumeration>
            <enumeration value="SRV">
              <description>{{bibref|RFC2782}}</description>
            </enumeration>
            <enumeration value="PTR">
              <description>{{bibref|RFC1035}}</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

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

    <object name="Device.DNS.Zone.{i}." access="readWrite" minEntries="0"
        numEntriesParameter="ZoneNumberOfEntries" maxEntries="unbounded"
        version="2.17">
      <description>
        This object specifies Zone file configuration of the DNS server.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the DNS zone.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Name" access="readWrite">
        <description>
          Domain name that is associated with the zone.
        </description>
        <syntax>
          <string>
            <size maxLength="128"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Origin" access="readOnly">
        <description>
          The mechanism via which the Zone was created.

          Note: This parameter was changed to writeOnceReadOnly in the
          Device:2.18 version.

          Note: This parameter was reverted back to readOnly in the Device 2.19
          version.
        </description>
        <syntax>
          <string>
            <enumeration value="User">
              <description>
                Used for indicating that the entry was created by the end-user.
                For example through the web user interface.
              </description>
            </enumeration>
            <enumeration value="System">
              <description>
                Used for indicating that the entry was created by the system
                itself.
              </description>
            </enumeration>
            <enumeration value="Controller">
              <description>
                Used for indicating that the entry was created by a Controller.
              </description>
            </enumeration>
          </string>
          <default type="object" value="System"/>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite">
        <description>
          Specifies the Layer 3 interface on which the zone should be
          available. Example: ''Device.IP.Interface.1'' or
          ''Device.Logical.Interface.1''.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent=".IP.Interface."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

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

    <object name="Device.DNS.Zone.{i}.Host.{i}." access="readWrite"
        minEntries="0" numEntriesParameter="HostNumberOfEntries"
        maxEntries="unbounded" version="2.17">
      <description>
        This object specifies the resource records (RR) of the DNS zone.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the entry in the zone file.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Name" access="readWrite">
        <description>
          List of hostnames that are associated with the {{object}}.
        </description>
        <syntax>
          <list/>
          <string>
            <size maxLength="128"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Origin" access="readOnly">
        <description>
          Indicates the owner of the {{object}} instance.

          Note: This parameter was changed to writeOnceReadOnly in the
          Device:2.18 version.

          Note: This parameter was reverted back to readOnly in the Device 2.19
          version.
        </description>
        <syntax>
          <string>
            <enumeration value="User">
              <description>
                Used for indicating that the entry was created by the end-user.
                For example through the web user interface.
              </description>
            </enumeration>
            <enumeration value="System">
              <description>
                Used for indicating that the entry was created by the system
                itself.
              </description>
            </enumeration>
            <enumeration value="Controller">
              <description>
                Used for indicating that the entry was created by a Controller.
              </description>
            </enumeration>
          </string>
          <default type="object" value="System"/>
        </syntax>
      </parameter>

      <parameter name="Host" access="readWrite">
        <description>
          Host table entries associated with the device.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent=".Hosts.Host."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastUpdate">
        <description>
          The date and time in UTC when the entry was last changed.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DNS.Client." access="readOnly" minEntries="1"
        maxEntries="1" version="2.0">
      <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" version="2.0">
      <description>
        This table contains the DNS Server IP address to be used by the DNS
        Client (it does ''not'' model a DNS Server). Entries are either
        automatically created as result of DHCP (v4 or v6), IPCP, 3GPP-NAS
        (3GPP Non Access Stratum), or RA received DNS server information, or
        are statically configured by the Controller.
      </description>
      <uniqueKey functional="true">
        <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" version="2.0">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="DNSServer" access="readWrite">
        <description>
          DNS server IP address.

          Note: {{param}} is only writable when {{param|Type}} is
          {{enum|Static|Type}}; otherwise, {{param}} is automatically
          configured as result of DHCP, IPCP, 3GPP-NAS, or RA received DNS
          server information.
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite">
        <description>
          {{reference}} This parameter specifies the IP interface over which
          the DNS query is sent.

          {{template|INTERFACE-ROUTING}}

          Note: {{param}} is only writable when {{param|Type}} is
          {{enum|Static|Type}}; otherwise, {{param}} is automatically
          configured as result of DHCP, IPCP, 3GPP-NAS, or RA received DNS
          server information.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="###.IP.Interface."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Type" access="readOnly">
        <description>
          Method used to assign the {{param|DNSServer}} address. {{enum}}

          Table entries that are automatically created as result of DHCP, IPCP,
          3GPP-NAS, or RA received DNS server information will have {{param}}
          set to {{enum|DHCPv4}}, {{enum|DHCPv6}}, {{enum|IPCP}},
          {{enum|3GPP-NAS}} or {{enum|RouterAdvertisement}}, as the case may
          be. Manually created table entries will have their {{param}} set to
          {{enum|Static}}.
        </description>
        <syntax>
          <string>
            <enumeration value="DHCP" status="deleted">
              <description>
                {{obsoleted|2.14|because it's been replaced by
                {{enum|DHCPv4}}}}

                {{deleted|2.16}}
              </description>
            </enumeration>
            <enumeration value="DHCPv4"/>
            <enumeration value="DHCPv6"/>
            <enumeration value="RouterAdvertisement"/>
            <enumeration value="IPCP"/>
            <enumeration value="3GPP-NAS" version="2.18">
              <description>
                Assigned by the core network (fixed or cellular) using 3GPP NAS
                signalling methods. e.g. PDU Session Establishment Request
                using the extended Protocol Configuration Options, PDN
                Connectivity Request using the Protocol Configuration Options,
                PDP Context Activation Request using the Protocol Configuration
                Options {{bibref|3GPP-TS.24.008|clause 10.5.6.3}}, ... This
                information is available from the AT commands
                {{bibref|3GPP-TS.27.007|Clause 10.1.23}} PDP context read
                dynamic parameters +CGCONTRDP.
              </description>
            </enumeration>
            <enumeration value="Static"/>
          </string>
          <default type="object" value="Static"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DNS.Relay." access="readOnly" minEntries="1"
        maxEntries="1" version="2.0">
      <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="ConfigNumberOfEntries" access="readOnly"
          dmr:customNumEntriesParameter="true" version="2.17">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ForwardNumberOfEntries" access="readOnly"
          dmr:customNumEntriesParameter="true">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DNS.Relay.Config.{i}." access="readWrite"
        numEntriesParameter="ConfigNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.17">
      <description>
        This object is used to specify the cache configuration for each
        Forwarding relay.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="Forwarders" access="readWrite">
        <description>
          Specifies the list of the DNS forwarders to be used.
        </description>
        <syntax>
          <list/>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="#.Forwarding."
                targetType="row"/>
          </string>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite">
        <description>
          {{reference}} Specifies the IP interface over which the DNS query is
          received. This is usually the LAN interface.

          {{template|INTERFACE-ROUTING}}
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="###.IP.Interface."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="CacheSize" access="readOnly">
        <description>
          Specifies the size of cache in kilobytes.

          When '0' is specified, no DNS results will be cached.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="CacheMinTTL" access="readOnly">
        <description>
          Specifies the minimum TTL amount of time, in {{units}}, that an entry
          MUST be kept in the cache regardless of what has been specified by
          the domain owner.

          When '0' is specified, then the TTL chosen by the domain owner will
          be applied.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="CacheMaxTTL" access="readOnly">
        <description>
          Specifies the maximum TTL amount of time, in {{units}}, than an entry
          MUST be kept in the cache regardless of what has been specified by
          the domain owner.

          When '0' is specified, then the TTL chosen by the domain owner will
          be applied.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="86400"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DNS.Relay.Forwarding.{i}." access="readWrite"
        numEntriesParameter="ForwardNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.0">
      <description>
        DNS Server forwarding policy to be used by the DNS Relay. Entries are
        either automatically created as result of DHCP (v4 or v6), IPCP,
        3GPP-NAS (3GPP Non Access Stratum) or RA received DNS server
        information, or are statically configured by the Controller.

        Note: Management of re-directing queries to the device embedded DNS
        server is not defined in this version of the specification.
      </description>
      <uniqueKey functional="true">
        <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" version="2.0">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="DNSServer" access="readWrite">
        <description>
          DNS server IP address.

          Note: {{param}} is only writable when {{param|Type}} is
          {{enum|Static|Type}}; otherwise, {{param}} is automatically
          configured as result of DHCP, IPCP, 3GPP-NAS or RA received DNS
          server information.
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite">
        <description>
          {{reference}} Specifies the IP interface over which the DNS query is
          sent.

          {{template|INTERFACE-ROUTING}}

          Note: {{param}} is only writable when {{param|Type}} is
          {{enum|Static|Type}}; otherwise, {{param}} is automatically
          configured as result of DHCP, IPCP, 3GPP-NAS or RA received DNS
          server information.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="###.IP.Interface."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Type" access="readOnly">
        <description>
          Method used to assign the {{param|DNSServer}} address. {{enum}}

          Table entries that are automatically created as result of DHCP, IPCP,
          3GPP-NAS, or RA received DNS server information will have {{param}}
          set to {{enum|DHCPv4}}, {{enum|DHCPv6}}, {{enum|IPCP}},
          {{enum|3GPP-NAS}}, or {{enum|RouterAdvertisement}}, as the case may
          be. Manually created table entries will have their {{param}} set to
          {{enum|Static}}.
        </description>
        <syntax>
          <string>
            <enumeration value="DHCP" status="deleted">
              <description>
                {{obsoleted|2.14|because it's been replaced by
                {{enum|DHCPv4}}}}

                {{deleted|2.16}}
              </description>
            </enumeration>
            <enumeration value="DHCPv4"/>
            <enumeration value="DHCPv6"/>
            <enumeration value="RouterAdvertisement"/>
            <enumeration value="IPCP"/>
            <enumeration value="3GPP-NAS" version="2.19">
              <description>
                Assigned by the core network (fixed or cellular) using 3GPP NAS
                signalling methods. e.g. PDU Session Establishment Request
                using the extended Protocol Configuration Options, PDN
                Connectivity Request using the Protocol Configuration Options,
                PDP Context Activation Request using the Protocol Configuration
                Options {{bibref|3GPP-TS.24.008|clause 10.5.6.3}}, ... This
                information is available from the AT commands
                {{bibref|3GPP-TS.27.007|Clause 10.1.23}} PDP context read
                dynamic parameters +CGCONTRDP.
              </description>
            </enumeration>
            <enumeration value="Static"/>
          </string>
          <default type="object" value="Static"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DNS.Diagnostics." access="readOnly" minEntries="1"
        maxEntries="1" version="2.0">
      <description>
        The DNS Diagnostics object containing the
        {{object|NSLookupDiagnostics}} test.
      </description>
    </object>

    <object name="Device.DNS.Diagnostics.NSLookupDiagnostics."
        access="readOnly" minEntries="1" maxEntries="1" version="2.0">
      <description>
        This object defines access to an IP-layer NS Lookup test for the
        specified IP interface.

        When initiated, the NS Lookup test will contact {{param|DNSServer}} and
        look up {{param|HostName}} {{param|NumberOfRepetitions}} times.

        There will be a {{object|Result}} instance for each time the device
        performs a DNS lookup, which is determined by the value of
        {{param|NumberOfRepetitions}}.

        Any previous {{object|Result}} instances are removed when a new test is
        initiated.
      </description>

      <parameter name="DiagnosticsState" access="readWrite"
          activeNotify="canDeny">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="DiagnosticsState">
            <enumeration value="None" access="readOnly"/>
            <enumeration value="Requested"/>
            <enumeration value="Canceled" optional="true"/>
            <enumeration value="Complete" access="readOnly"/>
            <enumeration value="Error_DNSServerNotResolved" access="readOnly">
              <description>Unable to resolve DNSServer Name</description>
            </enumeration>
            <enumeration value="Error_Internal" access="readOnly"/>
            <enumeration value="Error_Other" access="readOnly"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite" version="2.0">
        <description>
          {{reference}} The layer 3 interface over which the test is to be
          performed. Example: ''Device.IP.Interface.1''.

          {{template|INTERFACE-ROUTING}}
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="weak" targetType="row"/>
          </string>
        </syntax>
      </parameter>

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

      <parameter name="DNSServer" access="readWrite" version="2.0">
        <description>
          Specifies the DNS Server name or IP address that NS Lookup is to use
          for the lookup. The name of this server will be resolved using the
          default DNS server unless an IP address is provided.

          If {{empty}} is specified, the device's default DNS server will be
          used.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

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

      <parameter name="NumberOfRepetitions" access="readWrite" version="2.0">
        <description>
          The number of times the device SHOULD repeat the execution of the
          NSLookup using the same input parameters. If the diagnostics test
          fails the CPE MAY terminate the test without completing the full
          number of repetitions.

          Each repetition will use a Result instance to hold the NSLookup
          result data.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ResultNumberOfEntries" access="readOnly"
          activeNotify="canDeny">
        <description>
          {{numentries}}

          Total number of Result entries from the most recent invocation of the
          test.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

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

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

      <parameter name="Status" access="readOnly" activeNotify="canDeny">
        <description>
          Result Parameter to represent whether the NS Lookup was successful or
          not.

          Errors for individual Result instances do not get bubbled up to
          {{param|#.DiagnosticsState}}.

          A failure on a specific attempt does not mean that the overall test
          failed, but a failure on all attempts means that
          {{param|#.DiagnosticsState}} SHOULD be
          {{enum|Error_Other|#.DiagnosticsState}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Success"/>
            <enumeration value="Error_DNSServerNotAvailable"/>
            <enumeration value="Error_HostNameNotResolved"/>
            <enumeration value="Error_Timeout"/>
            <enumeration value="Error_Other"/>
          </string>
        </syntax>
      </parameter>

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

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

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

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

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

    <object name="Device.DNS.SD." access="readOnly" minEntries="1"
        maxEntries="1" version="2.6">
      <description>
        This object contains the DNS Service Discovery {{bibref|DNS-SD}} object
        and parameters necessary to discover services and their associated
        devices.

        Upon reboot the the contents of the service table are repopulated. When
        the DNS-SD service is disabled, the contents of the service table is
        implementation specific.
      </description>

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

      <parameter name="Status" access="readOnly" version="2.19">
        <description>
          The status of the DNS service discovery.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled">
              <description>
                Indicates that the DNS-SD service is disabled.
              </description>
            </enumeration>
            <enumeration value="Enabled">
              <description>
                Indicates that the DNS-SD service is enabled.
              </description>
            </enumeration>
            <enumeration value="Error" optional="true">
              <description>
                MAY be used to define an error condition.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="AdvertiseNumberOfEntries" access="readOnly"
          version="2.17">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

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

      <parameter name="AdvertisedInterfaces" access="readWrite"
          status="obsoleted" version="2.12">
        <description>
          {{reference|the {{object|##.IP.Interface}} object instance from which
          DNS-SD services are advertised}}

          If this parameter is not supported by an implementation then DNS-SD
          services are advertised on all LAN interfaces.

          {{deprecated|2.17|in favor of {{param|Advertise.{i}.Interface}}}}

          {{obsoleted|2.19}}
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetParent="##.IP.Interface."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DNS.SD.Advertise.{i}." access="readWrite"
        numEntriesParameter="AdvertiseNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.17">
      <description>
        The {{object}} table contains DNS-SD services that MUST be advertised.
        DNS.SD service information is provided in DNS RR SRV records
        {{bibref|RFC2782}}. The Service Instance Name {{bibref|DNS-SD|Section
        4.1 Structured Instance Names}} further specifies information about the
        service name (RFC2782 Service field) and domain name (RFC2782 Name
        field) in the form:

        Service Instance Name = [InstanceName] . [Service] . [Domain]

        [Service] = _[ApplicationProtocol] . _[TransportProtocol]

        RFC2782 Service field will always be equal to [InstanceName]. [Service]

        RFC2782 Name field will always be equal to [Domain]

        For example, an SSH service might have:

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

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

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

        *{{param|Port}} = 22
      </description>
      <uniqueKey functional="true">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the advertisement of the DNS-SD service.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

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

      <parameter name="Status" access="readOnly">
        <description>
          The status of the advertised {{object}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled">
              <description>
                Indicates that the DNS-SD service advertisement is disabled.
              </description>
            </enumeration>
            <enumeration value="Enabled">
              <description>
                Indicates that the DNS-SD service advertisement is enabled.
              </description>
            </enumeration>
            <enumeration value="Error_Misconfigured">
              <description>
                Indicates that a necessary configuration value is undefined or
                invalid.
              </description>
            </enumeration>
            <enumeration value="Error" optional="true">
              <description>
                MAY be used to define an error condition.
              </description>
            </enumeration>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite">
        <description>
          {{reference}} The layer 3 interface on which the DNS-SD service MUST
          be advertised. Example: ''Device.IP.Interface.1'' or
          ''Device.Logical.Interface.1''.

          {{template|INTERFACE-ROUTING}}
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent=".IP.Interface."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="InstanceName" access="readWrite">
        <description>
          Human-readable instance name {{bibref|DNS-SD|Section 4.1.1 Instance
          Names}} (i.e. The "[{{param}}]" portion of the '"Service Instance
          Name'").

          Note: This parameter was promoted to readWrite in the Device:2.18
          version.
        </description>
        <syntax>
          <string>
            <size maxLength="63"/>
          </string>
        </syntax>
      </parameter>

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

          Note: This parameter was promoted to readWrite in the Device:2.18
          version.
        </description>
        <syntax>
          <string>
            <size maxLength="15"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="TransportProtocol" access="readWrite">
        <description>
          The Transport Protocol associated with the service as defined by the
          DNS-SD service {{bibref|DNS-SD|Section 4.1.2 Service Names}}.

          Note: This parameter was promoted to readWrite in the Device:2.18
          version.
        </description>
        <syntax>
          <string>
            <enumeration value="TCP"/>
            <enumeration value="UDP"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Domain" access="readWrite">
        <description>
          The value to be entered into the Name field of the DNS SRV record
          {{bibref|RFC2782}} which represents the fully qualified domain name
          (FQDN) associated with the service as defined by the DNS-SD service
          {{bibref|DNS-SD|Section 4.1.3 Domain Names}}.

          Note: This parameter was promoted to readWrite in the Device:2.18
          version.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
          <default type="object" value="local"/>
        </syntax>
      </parameter>

      <parameter name="Port" access="readWrite">
        <description>
          The value to be entered into the Port field of the DNS SRV record
          {{bibref|RFC2782}} that is used to contact the service.

          Note: This parameter was promoted to readWrite in the Device:2.18
          version.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

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

    <object name="Device.DNS.SD.Advertise.{i}.TextRecord.{i}."
        access="readWrite" numEntriesParameter="TextRecordNumberOfEntries"
        minEntries="0" maxEntries="unbounded" dmr:noUniqueKeys="true"
        version="2.17">
      <description>
        This object maintains an instance of a (key/value pairs) of the
        service. The information is to be provided in the DNS TXT records
        {{bibref|RFC1035}} of the advertised service.

        When multiple instances of the {{object}} table have the same value for
        the {{param|Key}} parameter, the implementation is CPE specific.

        Note: This object was promoted to readWrite in the Device:2.18 version.
      </description>

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

      <parameter name="Value" access="readWrite">
        <description>
          The value of the text record.
        </description>
        <syntax>
          <string>
            <size maxLength="255"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DNS.SD.Service.{i}." access="readOnly"
        numEntriesParameter="ServiceNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.6">
      <description>
        The {{object}} table contains discovered DNS-SD services. DNS.SD
        service information is provided in DNS RR SRV records
        {{bibref|RFC2782}}. The Service Instance Name {{bibref|DNS-SD|Section
        4.1 Structured Instance Names}} further specifies information about the
        service name (RFC2782 Service field) and domain name (RFC2782 Name
        field) in the form:

        Service Instance Name = [InstanceName] . [Service] . [Domain]

        [Service] = _[ApplicationProtocol] . _[TransportProtocol]

        RFC2782 Service field will always be equal to [InstanceName]. [Service]

        RFC2782 Name field will always be equal to [Domain]

        For example, an SSH service might have:

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

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

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

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

        *{{param|Port}} = 22

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

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

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

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

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

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

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

      <parameter name="Status" access="readOnly">
        <description>
          The status of the discovered {{object}} at {{param|LastUpdate}} time.
          {{enum}}

          The ability to instantiate an inactive {{object}} is OPTIONAL.

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

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

      <parameter name="Host" access="readOnly">
        <description>
          Includes all Host table entries, active or inactive, that correspond
          to this discovered DNS.SD service.
        </description>
        <syntax>
          <list/>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="###.Hosts.Host."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

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

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

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

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

    <object name="Device.DNS.SD.Service.{i}.TextRecord.{i}." access="readOnly"
        numEntriesParameter="TextRecordNumberOfEntries" minEntries="0"
        maxEntries="unbounded" dmr:noUniqueKeys="true" version="2.6">
      <description>
        This object maintains an instance of a (key/value pairs) of the
        service. The information is extracted from DNS TXT records
        {{bibref|RFC1035}} of the discovered service.

        When multiple instances of the {{object}} table have the same value for
        the {{param|Key}} parameter, the implementation is CPE specific.
      </description>

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

      <parameter name="Value" access="readOnly">
        <description>
          The value of the text record.
        </description>
        <syntax>
          <string>
            <size maxLength="255"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.NAT." access="readOnly" minEntries="1" maxEntries="1"
        version="2.0">
      <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>

      <parameter name="MaxNumberOfPortMappings" access="readOnly"
          version="2.17">
        <description>
          The maximum number of port mappings that can exist at any given time.

          If the value of this parameter is 0, then it means that the device
          doesn't have a limit to the number of port mappings that can exist.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PortTriggerNumberOfEntries" access="readOnly"
          version="2.16">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MaxNumberOfPortTriggers" access="readOnly"
          version="2.17">
        <description>
          The maximum number of port triggers that can exist at any given time.

          If the value of this parameter is 0, then it means that the device
          doesn't have a limit to the number of port mappings that can exist.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.NAT.InterfaceSetting.{i}." access="readWrite"
        numEntriesParameter="InterfaceSettingNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded"
        version="2.0">
      <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 functional="true">
        <parameter ref="Interface"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the {{object}} entry, indicating if NAT is
          enabled for the referenced IP Interface instance. On creation, an
          {{object}} entry is disabled by default.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The status of this entry. {{enum}}

          The {{enum|Error_Misconfigured}} value indicates that a necessary
          configuration value is undefined or invalid.

          The {{enum|Error}} value MAY be used by the CPE to indicate a locally
          defined error condition.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Enabled"/>
            <enumeration value="Enabled_NATForcedDisabled">
              <description>
                NAT enabled but forced by a third party to be operationally
                disabled, e.g. because a {{object|##.MAP.Domain}} is enabled
                but there is no Basic Mapping Rule {{bibref|RFC7597}}.
              </description>
            </enumeration>
            <enumeration value="Enabled_PortMappingDisabled">
              <description>
                NAT enabled but port mapping has been operationally disabled by
                a third party, e.g. because this is REQUIRED by the current
                {{object|##.Firewall}} level.
              </description>
            </enumeration>
            <enumeration value="Error_Misconfigured"/>
            <enumeration value="Error"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

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

      <parameter name="Interface" access="readWrite">
        <description>
          {{reference}} The associated outgoing 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>

      <parameter name="SourceNetwork" access="readWrite" version="2.16">
        <description>
          Each list item MUST be the Path name of a
          {{object|.IP.Interface.{i}.IPv4Address.}} table or of one of its
          rows. If the referenced object is deleted, the corresponding item
          MUST be removed from the list.

          Specifies the source IPv4 network(s) that MUST be translated for all
          outgoing traffic associated with the {{param|Interface}} (e.g.
          ''Device.IP.Interface.2.IPv4Address.'' (table) or
          ''Device.IP.Interface.2.IPv4Address.1.'' (row)).

          The {{param|.IP.Interface.{i}.IPv4Address.{i}.IPAddress}} and
          {{param|.IP.Interface.{i}.IPv4Address.{i}.SubnetMask}} are used to
          construct an additional filter rule that specifies which address
          range needs to be translated.
        </description>
        <syntax>
          <list/>
          <string>
            <size maxLength="256"/>
          </string>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>

      <parameter name="TCPTranslationTimeout" access="readWrite"
          version="2.13">
        <description>
          Determines the timeout, in {{units}}, of NAT translations for TCP
          sessions. It is the time after which a NAT entry is removed from the
          NAT table if there is no activity. A value of -1 represents an
          infinite duration.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
            <units value="seconds"/>
          </int>
          <default type="object" value="300"/>
        </syntax>
      </parameter>

      <parameter name="UDPTranslationTimeout" access="readWrite"
          version="2.13">
        <description>
          Determines the timeout, in {{units}}, of NAT translations for UDP
          bindings. It is the time after which a NAT entry is removed from the
          NAT table if there is no activity. A value of -1 represents an
          infinite duration.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
            <units value="seconds"/>
          </int>
          <default type="object" value="30"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.NAT.PortMapping.{i}." access="readWrite"
        numEntriesParameter="PortMappingNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded"
        version="2.0">
      <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}}, or
        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>
      <uniqueKey functional="true">
        <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="Inactive" version="2.18">
              <description>
                Indicates that the port mapping is still enabled but has been
                temporarily deactivated due to the Schedules defined in
                {{param|ScheduleRef}}.
              </description>
            </enumeration>
            <enumeration value="Error_Misconfigured"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

      <parameter name="Origin" access="readOnly" version="2.17">
        <description>
          Indicates the Origin of the {{object}} instance.

          Note: This parameter was changed to writeOnceReadOnly in the
          Device:2.18 version.

          Note: This parameter was reverted back to readOnly in the Device 2.19
          version.
        </description>
        <syntax>
          <string>
            <enumeration value="User">
              <description>
                Used for indicating that the port mapping entry was created by
                the end-user. For example through the web user interface.
              </description>
            </enumeration>
            <enumeration value="System">
              <description>
                Used for indicating that the port mapping entry was created by
                the system itself.
              </description>
            </enumeration>
            <enumeration value="UPnP">
              <description>
                Used for indicating that the port mapping entry was created by
                a device using UPnP-IGD.
              </description>
            </enumeration>
            <enumeration value="Controller">
              <description>
                Used for indicating that the port mapping entry was created by
                a Controller.
              </description>
            </enumeration>
          </string>
          <default type="object" value="Controller"/>
        </syntax>
      </parameter>

      <parameter name="Alias" access="readWrite" version="2.0">
        <description>
          {{datatype|expand}}

          Note: There is no guarantee that the {{param}} value on
          automatically-created {{object}} instances will be retained. This is
          because automatically-created {{object}} instances can be transitory.
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </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 {{units}} 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 is the same as when the {{object}} was created. Note: the
          Device:2.19 version of the data model moved the dynamic countdown
          behavior, when reading the {{param}}, to the
          {{param|RemainingLeaseTime}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RemainingLeaseTime" access="readOnly"
          activeNotify="canDeny" version="2.18">
        <description>
          For a dynamic (non-static) port mapping, when this parameter is read,
          the value represents the time (in {{units}}) 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 device
          MUST automatically terminate that port mapping, and MUST
          automatically delete the corresponding {{object}} table entry.

          For a static port mapping, this parameter is irrelevant and should
          return ''0''.
        </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 traffic 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}}, traffic 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
          traffic to.

          When {{param|ExternalPortEndRange}} is utilized, this range will also
          be applied accordingly, starting from the {{param}} number.

          Example: ExternalPort=3000 and ExternalPortEndRange=3010 with
          InternalPort=5000 means the ports are mapped as follows:

          * External port 3000 maps to internal port 5000

          * External port 3001 maps to internal port 5001

          * External port 3002 maps to internal port 5002

          * ...

          * External port 3010 maps to internal port 5010
        </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
          Controller 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 Controller. 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>

      <parameter name="ScheduleRef" access="readWrite" version="2.18">
        <description>
          Each reference provides a schedule where time based access can be
          enabled. When {{param}} is {{empty}} the {{object}} is not scheduled,
          and the {{param|Enable}} defines the operational state.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetParent=".Schedules.Schedule."
                targetType="row"/>
          </string>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>

      <parameter name="Log" access="readWrite" version="2.19">
        <description>
          Enable or disable logging, in a {{object|.DeviceInfo.VendorLogFile}},
          of packets matching this {{object}}.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="LogRef" access="readWrite" version="2.19">
        <description>
          Specifies the logging rules for this {{object}} entry. The
          {{param|Log}} parameter MUST be set to {{true}} for this setting to
          take effect. When {{param|Log}} is {{true}} and {{param}} is
          {{empty}} or contains an invalid reference, the system MUST treat the
          configuration as an error and set {{param|Status}} to
          {{enum|Error_Misconfigured|Status}}.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetParent=".Firewall.Log."
                targetType="row"/>
          </string>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.NAT.PortTrigger.{i}." access="readWrite"
        numEntriesParameter="PortTriggerNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.16">
      <description>
        Firewall PortTrigger table.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the Port Trigger
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The status of this {{object}} entry.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled">
              <description>
                Indicates that the PortTrigger entry is disabled.
              </description>
            </enumeration>
            <enumeration value="Enabled">
              <description>
                Indicates that the PortTrigger entry is enabled.
              </description>
            </enumeration>
            <enumeration value="Inactive" version="2.18">
              <description>
                Indicates that the PortTrigger is still enabled but has been
                temporary deactivated due to the Schedules defined in
                {{param|ScheduleRef}}.
              </description>
            </enumeration>
            <enumeration value="Error_Misconfigured">
              <description>
                Indicates that a necessary configuration value is undefined or
                invalid.
              </description>
            </enumeration>
            <enumeration value="Error" optional="true">
              <description>
                MAY be used to define an error condition.
              </description>
            </enumeration>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

      <parameter name="Origin" access="readOnly">
        <description>
          Indicates the owner of the {{object}} instance.

          Note: This parameter was changed to writeOnceReadOnly in the
          Device:2.18 version.

          Note: This parameter was reverted back to readOnly in the Device 2.19
          version.
        </description>
        <syntax>
          <string>
            <enumeration value="User">
              <description>
                Used for indicating that the PortTrigger entry was created by
                the end-user. For example through the web user interface.
              </description>
            </enumeration>
            <enumeration value="System">
              <description>
                Used for indicating that the PortTrigger entry was created by
                the system itself.
              </description>
            </enumeration>
            <enumeration value="Controller">
              <description>
                Used for indicating that the PortTrigger entry was created by a
                Controller.
              </description>
            </enumeration>
          </string>
          <default type="object" value="Controller"/>
        </syntax>
      </parameter>

      <parameter name="Description" access="readWrite">
        <description>
          Human-readable description associated with this {{object}} entry.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite">
        <description>
          Specifies the incoming L3 interface to which this port trigger
          applies. Typically this will be the LAN interface.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="##.IP.Interface."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Port" access="readWrite">
        <description>
          Trigger Port, the port number which is used to start the port trigger
          rule.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="PortEndRange" access="readWrite">
        <description>
          Indicates the last port of the port range that starts with
          {{param|Port}} which is used to start the port trigger rule.

          A value of zero (0) indicates that no port range is specified, i.e.
          that the range consists only of {{param|Port}}.

          If {{param|Port}} is zero, 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|Port}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="AutoDisableDuration" access="readWrite">
        <description>
          Number of {{units}} the port trigger MUST be active. When the
          {{param}} is expired new connections are no longer allowed, active
          connections SHOULD not be terminated.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="ActivationDate" access="readOnly">
        <description>
          Indicates when the port trigger was enabled. When the port trigger is
          no longer active.

          Note: This parameter was demoted to readOnly in the Device:2.18
          version.
        </description>
        <syntax>
          <dateTime/>
          <default type="object" value="0001-01-01T00:00:00Z"/>
        </syntax>
      </parameter>

      <parameter name="Protocol" access="readWrite">
        <description>
          The protocol of the trigger port.
        </description>
        <syntax>
          <string>
            <enumeration value="TCP"/>
            <enumeration value="UDP"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ScheduleRef" access="readWrite" version="2.18">
        <description>
          Each reference provides a schedule where time based access can be
          enabled. When {{param}} is {{empty}} the {{object}} is not scheduled,
          and the {{param|Enable}} defines the operational state.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetParent=".Schedules.Schedule."
                targetType="row"/>
          </string>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>

      <parameter name="Log" access="readWrite" version="2.19">
        <description>
          Enable or disable logging, in a {{object|.DeviceInfo.VendorLogFile}},
          of packets matching this {{object}}.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="LogRef" access="readWrite" version="2.19">
        <description>
          Specifies the logging rules for this {{object}} entry. The
          {{param|Log}} parameter MUST be set to {{true}} for this setting to
          take effect. When {{param|Log}} is {{true}} and {{param}} is
          {{empty}} or contains an invalid reference, the system MUST treat the
          configuration as an error and set {{param|Status}} to
          {{enum|Error_Misconfigured|Status}}.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetParent=".Firewall.Log."
                targetType="row"/>
          </string>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>

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

    <object name="Device.NAT.PortTrigger.{i}.Rule.{i}." access="readWrite"
        numEntriesParameter="RuleNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.16">
      <description>
        Firewall PortTrigger Rule table.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="Port" access="readWrite">
        <description>
          Port (or the first port of a range of ports) which needs to be opened
          when the Trigger conditions are met.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="PortEndRange" access="readWrite">
        <description>
          Indicates the last port of the port range that starts with
          {{param|Port}} which needs to be opened when the Trigger conditions
          are met.

          A value of zero (0) indicates that no port range is specified, i.e.
          that the range consists only of {{param|Port}}.

          If {{param|Port}} is zero, 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|Port}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="Protocol" access="readWrite">
        <description>
          The protocol of the to be forwarded port.
        </description>
        <syntax>
          <string>
            <enumeration value="TCP"/>
            <enumeration value="UDP"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.PCP." access="readOnly" minEntries="1" maxEntries="1"
        version="2.8">
      <description>
        Properties for Port Control Protocol (PCP) {{bibref|RFC6887}}.

        See the PCP Theory of Operation {{bibref|TR-181i2|Appendix XIV}} for a
        description of the working of this PCP data model.
      </description>

      <parameter name="Enable" access="readWrite" version="2.16">
        <description>
          Enables or disables the PCP stack. If the stack is disabled then the
          status of any enabled {{object|Client}} entries will change to
          {{enum|StackDisabled|Client.{i}.Status}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="SupportedVersions" access="readOnly">
        <description>
          {{list}} Each list item denotes a PCP version supported by the PCP
          Client. Currently known versions are 0, 1 and 2.

          This parameter is based on Version from {{bibref|RFC6887}}.
        </description>
        <syntax>
          <list/>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="PreferredVersion" access="readWrite">
        <description>
          This is the version to be used in the first exchange with a new PCP
          Server.

          The factory default MUST be the highest supported version, as
          described in {{bibref|RFC6887|Section 9}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="OptionList" access="readOnly">
        <description>
          {{list}} The list of the PCP Options supported by the PCP Client.
        </description>
        <syntax>
          <list/>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="254"/>
          </unsignedInt>
        </syntax>
      </parameter>

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

    <object name="Device.PCP.Client.{i}." access="readWrite"
        numEntriesParameter="ClientNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.8">
      <description>
        Client properties for Port Control Protocol (PCP). The PCP Client
        interacts with a PCP Server as defined in {{bibref|RFC6887}} for
        internal device applications or LAN device applications via
        Interworking functions.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="WANInterface"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the PCP Client.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

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

      <parameter name="WANInterface" access="readOnly">
        <description>
          {{reference|the interface stack instance representing the WAN
          interface this client operates on}} See {{object|##.InterfaceStack}}
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="##.IP.Interface."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The status of the PCP 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="StackDisabled" version="2.16"/>
            <enumeration value="Error" optional="true"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="MAPEnable" access="readWrite">
        <description>
          Enables or disables the MAP OpCode.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="PEEREnable" access="readWrite">
        <description>
          Enables or disables the PEER OpCode.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="ANNOUNCEEnable" access="readWrite">
        <description>
          Enables or disables the ANNOUNCE OpCode.

          When {{false}} the PCP Client does not support unsolicited ANNOUNCE
          messages.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="THIRDPARTYEnable" access="readWrite">
        <description>
          Enables or disables the THIRD_PARTY Option.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="THIRDPARTYStatus" access="readOnly">
        <description>
          Indicates whether THIRD_PARTY Option is enabled or not. {{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="FILTEREnable" access="readWrite">
        <description>
          Enables or disables the FILTER option.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

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

    <object name="Device.PCP.Client.{i}.PCPProxy." access="readOnly"
        minEntries="1" maxEntries="1" version="2.8">
      <description>
        Properties for the Port Control Protocol (PCP) Proxy, as specified in
        {{bibref|PCPProxy}}.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the PCP Proxy for this PCP Client.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="HighestVersion" access="readOnly">
        <description>
          A string identifying the highest version of PCP that the proxy
          supports.

          This parameter is based on Version from {{bibref|RFC6887}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The status of the PCP Proxy for this PCP 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>
    </object>

    <object name="Device.PCP.Client.{i}.UPnPIWF." access="readOnly"
        minEntries="1" maxEntries="1" version="2.8">
      <description>
        Properties for the interworking function between UPnP IGD (Internet
        Gateway Device) and PCP, as specified in {{bibref|RFC6970}}.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the UPnP IGD-PCP Interworking Function for this
          PCP Client.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The status of the UPnP IGD-PCP Interworking Function for this PCP
          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>
    </object>

    <object name="Device.PCP.Client.{i}.Server.{i}." access="readWrite"
        numEntriesParameter="ServerNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.8">
      <description>
        This table contains the PCP Servers to be used by the PCP Client.
        Entries are either statically configured or automatically created via
        DHCP options OPTION_V4_PCP_SERVER and OPTION_V6_PCP_SERVER, as per
        {{bibref|RFC7291}}.

        Each OPTION_V4_PCP_SERVER or OPTION_V6_PCP_SERVER option corresponds to
        a {{object}} instance. If an option returns multiple addresses then
        that {{object}} instance has multiple addresses.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="ServerNameOrAddress"/>
      </uniqueKey>

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

      <parameter name="Status" access="readOnly">
        <description>
          The status of the PCP Server. {{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="Connecting"/>
            <enumeration value="Error_Timeout"/>
            <enumeration value="Error_HostNameNotResolved"/>
            <enumeration value="Error_NetworkFailure"/>
            <enumeration value="Error_NotAuthorized"/>
            <enumeration value="Error_Unsupported"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

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

      <parameter name="Origin" access="readOnly">
        <description>
          Method used to assign {{param|ServerNameOrAddress}} and create this
          table entry. {{enum}}

          Note: In the {{enum|DHCPv4}} and {{enum|DHCPv6}} cases, if more than
          one IP address is received {{param|ServerNameOrAddress}} will be the
          first address and {{param|AdditionalServerAddresses}} will be the
          remaining addresses.
        </description>
        <syntax>
          <string>
            <enumeration value="DHCPv4">
              <description>
                {{param|ServerNameOrAddress}} is an IPv4 address that was
                received via OPTION_V4_PCP_SERVER
              </description>
            </enumeration>
            <enumeration value="DHCPv6">
              <description>
                {{param|ServerNameOrAddress}} is an IPv6 address that was
                received via OPTION_V6_PCP_SERVER
              </description>
            </enumeration>
            <enumeration value="Static">
              <description>
                {{param|ServerNameOrAddress}} is an FQDN, IPv4 address or IPv6
                address that was created by the Controller, by some other
                management entity (e.g. via a GUI), or is present in the
                factory default configuration
              </description>
            </enumeration>
          </string>
          <default type="object" value="Static"/>
        </syntax>
      </parameter>

      <parameter name="ServerNameOrAddress" access="readWrite">
        <description>
          The FQDN or IP address of the PCP Server, assigned as described under
          {{param|Origin}}.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ServerAddressInUse" access="readOnly">
        <description>
          The IP address currently in use for the PCP Server, derived from the
          value of {{param|ServerNameOrAddress}}.

          {{empty}} indicates that no PCP Server address is currently known.
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
        </syntax>
      </parameter>

      <parameter name="AdditionalServerAddresses" access="readOnly">
        <description>
          PCP Server addresses in addition to {{param|ServerNameOrAddress}}.
          This can be non-empty only if {{param|Origin}} is
          {{enum|DHCPv4|Origin}} or {{enum|DHCPv6|Origin}} and if more than one
          PCP Server address was received.
        </description>
        <syntax>
          <list/>
          <dataType ref="IPAddress"/>
        </syntax>
      </parameter>

      <parameter name="ExternalIPAddress" access="readOnly">
        <description>
          The external IP address of the PCP-controlled device hosting this
          server.
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
        </syntax>
      </parameter>

      <parameter name="CurrentVersion" access="readOnly">
        <description>
          This is the version of PCP resulting from client-server Version
          Negotiation.

          This parameter is based on Version from {{bibref|RFC6887}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MaximumFilters" access="readWrite">
        <description>
          Indicates the maximum number of inbound filters allowed to be
          associated with a mapping entry on this server.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PortQuota" access="readWrite">
        <description>
          Indicates the maximum number of ports allocated to this PCP Client on
          this server.

          A value of 0 means that there is no limitation.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="65535"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="PreferredLifetime" access="readWrite">
        <description>
          Indicates the preferred lifetime (in {{units}}) to be used for
          mappings with this server when no preference is selected by an
          application/user.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Capabilities" access="readOnly">
        <description>
          Indicates the capabilities supported by the PCP Server. {{enum}}
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="NAT44"/>
            <enumeration value="StatelessNAT64"/>
            <enumeration value="StatefulNAT64"/>
            <enumeration value="A+PPortRangeRouter"/>
            <enumeration value="SupportsPORTSETOption"/>
            <enumeration value="IPv4Firewall"/>
            <enumeration value="IPv6Firewall"/>
            <enumeration value="NPTv6"/>
            <enumeration value="DSCPReMarkingFunction"/>
            <enumeration value="FLOWDATAAwareFunction"/>
            <enumeration value="ILNPTranslator"/>
          </string>
        </syntax>
      </parameter>

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

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

    <object name="Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}."
        access="readWrite" numEntriesParameter="InboundMappingNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded"
        version="2.8">
      <description>
        Inbound Mapping table.

        This table contains all Inbound Mappings requested by this PCP Client
        on this PCP Server. Such a mapping is created by a PCP request with
        OpCode MAP, as described in {{bibref|RFC6887|Section 11}}.

        These requests can be issued from internal device applications, from
        static configuration or from other LAN device applications via
        interworking functions such as UPnP IGD or PCP proxies. The
        {{param|Origin}} parameter indicates which mechanism requested the
        mapping.

        For non-{{enum|Static|Origin}} mappings (here ''Static'' refers to the
        mechanism that created the mapping, not to the {{param|Lifetime}}), the
        Controller MAY modify the {{param|Enable}} parameter but MUST NOT
        modify any other parameters in the mapping or its sub-objects.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="InternalPort"/>
        <parameter ref="ProtocolNumber"/>
        <parameter ref="ThirdPartyAddress"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables this {{object}} instance.
        </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_PCPErrorCodeReceived}} value indicates that the PCP
          Client received an error code from the PCP Server.

          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_PCPErrorCodeReceived"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

      <parameter name="ErrorCode" access="readOnly">
        <description>
          Provides the PCP error code when {{param|Status}} is
          {{enum|Error_PCPErrorCodeReceived|Status}}. Error code values are
          defined in {{bibref|RFC6887|Section 7.4}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

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

      <parameter name="Origin" access="readOnly">
        <description>
          Mechanism via which the mapping was requested. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="Internal">
              <description>
                Requested via internal device application
              </description>
            </enumeration>
            <enumeration value="UPnP_IWF">
              <description>
                Requested via UPnP IGD interworking function
              </description>
            </enumeration>
            <enumeration value="PCP_Proxy">
              <description>Requested via PCP proxy</description>
            </enumeration>
            <enumeration value="Static">
              <description>
                Requested via static configuration, i.e. created by the
                Controller, by some other management entity (e.g. via a GUI),
                or is present in the factory default configuration
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="Lifetime" access="readWrite" activeNotify="canDeny">
        <description>
          Determines the time to live, in {{units}}, of this Inbound Mapping
          lease, i.e. the remaining time before this port mapping expires.

          A value of 0 means that the port mapping is permanent (referred to as
          a static mapping in {{bibref|RFC6887}}).

          When a dynamic Inbound Mapping lease expires, the CPE MUST
          automatically delete the corresponding {{object}} table entry.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SuggestedExternalIPAddress" access="readWrite">
        <description>
          The external IPv4 or IPv6 Address that the PCP-controlled device will
          listen on for incoming packets to be forwarded to the PCP Client.

          This is useful for refreshing an Inbound Mapping, especially after
          the PCP Server loses state. If the PCP client does not know the
          external address, or does not have a preference, it MUST use
          {{empty}}.
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SuggestedExternalPort" access="readWrite">
        <description>
          The external port (or the first port of a range of external ports)
          that the PCP-controlled device will listen on for incoming packets.
          Those inbound packets will be forwarded to {{param|InternalPort}}. If
          the PCP client does not know the external port, or does not have a
          preference, it MUST use 0.

          This is useful for refreshing an Inbound Mapping, especially after
          the PCP Server loses state. If the PCP Client does not know the
          external port, or does not have a preference, it MUST use 0.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="SuggestedExternalPortEndRange" access="readWrite">
        <description>
          Indicates the last port of the external port range that starts with
          {{param|SuggestedExternalPort}}.

          If an external port range is specified, then the behavior described
          for {{param|SuggestedExternalPort}} 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|SuggestedExternalPort}}.

          If {{param|SuggestedExternalPort}} is zero (wildcard), the value of
          {{param}} MUST be ignored.

          If specified, the value of this parameter MUST be zero or be greater
          than or equal to the value of {{param|SuggestedExternalPort}}.
        </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 this PCP Client's {{param|##.WANInterface}} that the
          PCP-controlled device forwards incoming packets to.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ProtocolNumber" access="readWrite">
        <description>
          The protocol number of the {{object}}. Values are taken from
          {{bibref|IANA-protocolnumbers}}.

          The value -1 means ''all protocols''.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="255"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="ThirdPartyAddress" access="readWrite">
        <description>
          Under certain conditions, the PCP Client can create a PCP mapping on
          behalf of another device, by using the THIRD_PARTY option, as
          specified in {{bibref|RFC6887|Section 7.3}}. In that case, {{param}}
          is the IP address of the device for which the PCP operation is
          requested.

          For non-third-party mappings, {{param}} SHOULD be {{empty}}.
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
        </syntax>
      </parameter>

      <parameter name="Description" access="readWrite">
        <description>
          User-readable description of this {{object}}.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="AssignedExternalIPAddress" access="readOnly">
        <description>
          The external IPAddress returned by the PCP Server. The IP address
          that the PCP-controlled device is listening on for incoming packets
          to a corresponding PCP Client.
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="AssignedExternalPort" access="readOnly">
        <description>
          The external port returned by the PCP Server. The external port (or
          the first port of a range of external ports) that the PCP-controlled
          device is listening on for incoming packets to a corresponding
          {{param|InternalPort}}. Inbound packets to this external port on the
          External interface of the PCP-controlled device is forwarded to the
          on the {{param|InternalPort}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="AssignedExternalPortEndRange" access="readOnly">
        <description>
          Indicates the last port of the external port range that starts with
          {{param|AssignedExternalPort}}.

          If an external port range is specified, then the behavior described
          for {{param|AssignedExternalPort}} 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|AssignedExternalPort}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

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

    <object
        name="Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Filter.{i}."
        access="readWrite" numEntriesParameter="FilterNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.8">
      <description>
        Filter table.

        This table contains all Filters restricting this Inbound Mapping, as
        defined in {{bibref|RFC6887|}}.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="RemoteHostIPAddress" access="readWrite">
        <description>
          Permitted remote peer IP address for this filter.
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="PrefixLength" access="readWrite">
        <description>
          Indicates how many bits of {{param|RemoteHostIPAddress}} are relevant
          for this filter.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="128"/>
          </unsignedInt>
          <default type="object" value="128"/>
        </syntax>
      </parameter>

      <parameter name="RemotePort" access="readWrite">
        <description>
          Permitted remote peer port number for this filter.

          The value 0 indicates ''all ports''.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RemotePortEndRange" access="readWrite">
        <description>
          Indicates the last port of the remote port range that starts with
          {{param|RemotePort}}.

          If an external port range is specified, then the behavior described
          for {{param|RemotePort}} applies to all ports within the range.

          A value of zero (0) indicates that no remote port range is specified,
          i.e. that the range consists only of {{param|RemotePort}}.

          Note: This parameter was promoted to readWrite in the Device:2.18
          version.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}."
        access="readWrite" numEntriesParameter="OutboundMappingNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded"
        version="2.8">
      <description>
        Outbound Mapping table.

        This table contains all Outbound Mappings requested by this PCP Client
        on this PCP Server. Such a mapping is created by a PCP request with
        OpCode PEER, as described in {{bibref|RFC6887|Section 12}}.

        These requests can be issued from internal device applications, from
        static configuration or from other LAN device applications via
        interworking functions such as UPnP IGD or PCP proxies. The
        {{param|Origin}} parameter indicates which mechanism requested the
        mapping.

        For non-{{enum|Static|Origin}} mappings (here ''Static'' refers to the
        mechanism that created the mapping, not to the {{param|Lifetime}}), the
        Controller MAY modify the {{param|Enable}} parameter but MUST NOT
        modify any other parameters in the mapping or its sub-objects.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="InternalPort"/>
        <parameter ref="ProtocolNumber"/>
        <parameter ref="ThirdPartyAddress"/>
        <parameter ref="RemoteHostIPAddress"/>
        <parameter ref="RemotePort"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables this {{object}} instance.
        </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_PCPErrorCodeReceived}} value indicates that the PCP
          Client received an error code from the PCP Server.

          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_PCPErrorCodeReceived"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

      <parameter name="ErrorCode" access="readOnly">
        <description>
          Provides the PCP Error code when {{param|Status}} is
          {{enum|Error_PCPErrorCodeReceived|Status}}. Error code values are
          defined in {{bibref|RFC6887|Section 7.4}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

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

      <parameter name="Origin" access="readOnly">
        <description>
          Mechanism via which the mapping was requested. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="Internal">
              <description>
                Requested via internal device application
              </description>
            </enumeration>
            <enumeration value="UPnP_IWF">
              <description>
                Requested via UPnP IGD interworking function
              </description>
            </enumeration>
            <enumeration value="PCP_Proxy">
              <description>Requested via PCP proxy</description>
            </enumeration>
            <enumeration value="Static">
              <description>
                Requested via static configuration, i.e. created by the
                Controller, by some other management entity (e.g. via a GUI),
                or is present in the factory default configuration
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="Lifetime" access="readWrite">
        <description>
          Determines the time to live, in {{units}}, of this Outbound Mapping
          lease, i.e. the remaining time before this port mapping expires.

          A value of 0 means that the port mapping is permanent (referred to as
          a static mapping in {{bibref|RFC6887}}).

          When a dynamic Outbound Mapping lease expires, the CPE MUST
          automatically delete the corresponding {{object}} table entry.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SuggestedExternalIPAddress" access="readWrite">
        <description>
          The external IPv4 or IPv6 Address that the PCP-controlled device will
          use to send outgoing packets covered by this mapping.

          This is useful for refreshing a mapping, especially after the PCP
          Server has lost state. If the PCP Client does not know the external
          address, or does not have a preference, it MUST use {{empty}}.
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SuggestedExternalPort" access="readWrite">
        <description>
          The external port that the PCP-controlled device will use to send
          outgoing packets covered by this mapping.

          This is useful for refreshing a mapping, especially after the PCP
          Server has lost state. If the PCP Client does not know the external
          port, or does not have a preference, it MUST use 0.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="RemoteHostIPAddress" access="readWrite">
        <description>
          The remote peer's IP address, as seen from the PCP Client, for this
          Outbound Mapping.
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
        </syntax>
      </parameter>

      <parameter name="InternalPort" access="readWrite">
        <description>
          The port on PCP Client WAN Interface that the PCP-controlled device
          SHOULD listen to for this mapping.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RemotePort" access="readWrite">
        <description>
          The remote peer's port, as seen from the PCP Client, for this
          Outbound Mapping.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ProtocolNumber" access="readWrite">
        <description>
          The protocol number of the {{object}}. Values are taken from the
          {{bibref|IANA-protocolnumbers}}.

          The value -1 means ''all protocols''.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="255"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="ThirdPartyAddress" access="readWrite">
        <description>
          Under certain conditions, the PCP Client can create a PCP mapping on
          behalf of another device, by using the THIRD_PARTY option, as
          specified in {{bibref|RFC6887|Section 7.3}}. In that case, {{param}}
          is the IP address of the device for which the PCP operation is
          requested.

          For non-third-party mappings, {{param}} SHOULD be {{empty}}.
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
        </syntax>
      </parameter>

      <parameter name="Description" access="readWrite">
        <description>
          User-readable description of this {{object}}.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="AssignedExternalIPAddress" access="readOnly">
        <description>
          The external IP address returned by the PCP Server. The IP address
          that the PCP-controlled device uses to send outgoing packets
          corresponding to this mapping.
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="AssignedExternalPort" access="readOnly">
        <description>
          The external port returned by the PCP Server. The port that the
          PCP-controlled device uses to send outgoing packets corresponding to
          this mapping.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DHCPv4." access="readOnly" minEntries="1"
        maxEntries="1" version="2.0">
      <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" version="2.0">
      <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 functional="true">
        <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" version="2.0">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </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"
          dmr:previousParameter="DHCPStatus">
        <description>
          When set to {{true}}, the DHCP client will renew its DHCP lease.
        </description>
        <syntax command="true">
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="IPAddress" access="readOnly">
        <description>
          IPv4 Address option received from the DHCP Server. {{empty}} when
          {{param|Status}} is not equal to {{enum|Bound|DHCPStatus}}.
        </description>
        <syntax>
          <dataType ref="IPv4Address"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SubnetMask" access="readOnly">
        <description>
          Subnet mask option received from the DHCP Server. {{empty}} when
          {{param|Status}} is not equal to {{enum|Bound|DHCPStatus}}.

          Value is information received via DHCP Option 1.
        </description>
        <syntax>
          <dataType ref="IPv4Address"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="IPRouters" access="readOnly">
        <description>
          {{list}} Items represent IP Router IPv4 Address(es) received from the
          DHCP server. {{empty}} when {{param|Status}} is not equal to
          {{enum|Bound|DHCPStatus}}.

          Value is information received via DHCP Options 3, 33 or 121.
        </description>
        <syntax>
          <list>
            <size maxLength="256"/>
          </list>
          <dataType ref="IPv4Address"/>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>

      <parameter name="DNSServers" access="readOnly">
        <description>
          {{list}} Items represent DNS Server IPv4 Address(es) received from
          the DHCP server. {{empty}} when {{param|Status}} is not equal to
          {{enum|Bound|DHCPStatus}}.

          Value is information received via DHCP Option 6.
        </description>
        <syntax>
          <list>
            <size maxLength="256"/>
          </list>
          <dataType ref="IPv4Address"/>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>

      <parameter name="LeaseTimeRemaining" access="readOnly"
          activeNotify="canDeny">
        <description>
          DHCP lease time remaining in {{units}}. A value of -1 indicates an
          infinite lease.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
            <units value="seconds"/>
          </int>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="DHCPServer" access="readOnly">
        <description>
          The IPv4 address of the current DHCP server.
        </description>
        <syntax>
          <dataType ref="IPv4Address"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="PassthroughEnable" access="readWrite">
        <description>
          If {{false}}, the DHCP Client retrieved IP address information is
          configured on the referenced {{param|Interface}} object.

          If {{true}}, the DHCP Client retrieved information is propagated to
          the parameters in the referenced {{param|PassthroughDHCPPool}}
          object, replacing any existing configuration (including
          ''MinAddress'', ''MaxAddress'', ''SubnetMask'', ''IPRouters'', and
          ''DNSServers'').
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="PassthroughDHCPPool" access="readWrite">
        <description>
          {{reference}}When {{param}} is set to {{empty}},
          {{param|PassthroughEnable}} MUST be set to {{false}} (i.e.
          passthrough can not be enabled without a pool reference specified).
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="#.Server.Pool."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="AuthenticationProtocol" access="readWrite"
          version="2.19">
        <description>
          Specifies the authentication mechanism to be used.
        </description>
        <syntax>
          <string>
            <enumeration value="None"/>
            <enumeration value="ConfigurationToken">
              <description>
                Includes configuration token information in all DHCP messages,
                as defined in {{bibref|RFC3118|Section 4, Configuration
                Token}}.
              </description>
            </enumeration>
            <enumeration value="DelayedAuthentication">
              <description>
                Uses delayed authentication, as specified in
                {{bibref|RFC3118|Chapter 5 Delayed Authentication}}.
              </description>
            </enumeration>
          </string>
          <default type="object" value="None"/>
        </syntax>
      </parameter>

      <parameter name="DSCPMark" access="readWrite" version="2.19">
        <description>
          Diffserv code point to be used for outgoing DHCP messages.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="63"/>
          </unsignedInt>
          <default type="object" value="48"/>
        </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"
        version="2.0">
      <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 functional="true">
        <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" version="2.0">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Tag" access="readWrite">
        <description>
          Option tag as defined in {{bibref|RFC2132}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="254"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Value" access="readWrite">
        <description>
          A hexbinary encoded option value.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="0" maxLength="255"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DHCPv4.Client.{i}.ReqOption.{i}." access="readWrite"
        numEntriesParameter="ReqOptionNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.0">
      <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 functional="true">
        <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>
          {{datatype|expand}}

          This indicates the position of the option in the DHCP client request.
        </description>
        <syntax>
          <dataType ref="Order"/>
        </syntax>
      </parameter>

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

      <parameter name="Tag" access="readWrite">
        <description>
          Option tag as defined in {{bibref|RFC2132}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="254"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Value" access="readOnly">
        <description>
          A hexbinary encoded, most recently received DHCP option value.

          If no option value has been received, then the value MUST represent
          {{empty}}.

          Received DHCP option values MAY, but need not, persist across CPE
          reboots.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="0" maxLength="255"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DHCPv4.Client.{i}.Retransmission." access="readOnly"
        version="2.18">
      <description>
        This object enables the configurion of the DHCPv4 retransmission
        behavior according to the guidelines described in
        {{bibref|RFC2131|Chapter 4.1}}.
      </description>

      <parameter name="DiscoverInitialTimeout" access="readWrite">
        <description>
          Initial delay, expressed in {{units}}, before initiating the first
          DCHCPDISCOVER message.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="4"/>
        </syntax>
      </parameter>

      <parameter name="DiscoverMaxTimeout" access="readWrite">
        <description>
          Maximum duration, expressed in {{units}}, between two DHCPDISCOVER
          message retransmission.

          According to {{bibref|RFC2131|Chapter 4.1}}, the recommended value
          for this parameter is 64 {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="64"/>
        </syntax>
      </parameter>

      <parameter name="DiscoverMaxDuration" access="readWrite">
        <description>
          Maximum duration, expressed in {{units}}, during which the DHCPv4
          client is permitted to retransmit DHCPDISCOVER message

          A value of '0' indicates that no specific maximum duration is set.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="RequestInitialTimeout" access="readWrite">
        <description>
          Initial delay, expressed in {{units}}, before initiating the first
          DHCPREQUEST message.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="4"/>
        </syntax>
      </parameter>

      <parameter name="RequestMaxTimeout" access="readWrite">
        <description>
          Maximum duration, expressed in {{units}}, between two DHCPREQUEST
          message retransmission.

          According to {{bibref|RFC2131|Chapter 4.1}}, the recommended value
          for this parameter is 64 {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="64"/>
        </syntax>
      </parameter>

      <parameter name="RequestMaxDuration" access="readWrite">
        <description>
          Maximum duration, expressed in {{units}}, during which the DHCPv4
          client is permitted to retransmit DHCPREQUEST message.

          A value of '0' indicates that no specific maximum duration is set.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="TimeoutRandomize" access="readWrite">
        <description>
          The Randomization factor for the retransmission timeout, in
          {{units}}, as defined in {{bibref|RFC2131|4.1 Constructing and
          sending DHCP messages}}.

          E.g. a timeout of 2000ms with a randomization of 1000 will end up
          between 1000 and 3000 ms.
        </description>
        <syntax>
          <int>
            <units value="ms"/>
          </int>
          <default type="object" value="1000"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DHCPv4.Client.{i}.Stats." access="readOnly"
        version="2.19">
      <description>
        Provide statistis for the embedded DHCP Client.
      </description>

      <parameter name="Discover" access="readOnly">
        <description>
          The total number of DHCPDISCOVER messages sent by the client, as
          defined in {{bibref|RFC2132|DHCP Message Type}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="Offer" access="readOnly">
        <description>
          The total number of DHCPOFFER messages received by the client, as
          defined in {{bibref|RFC2132|DHCP Message Type}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="Request" access="readOnly">
        <description>
          The total number of DHCPREQUEST messages sent by the client, as
          defined in {{bibref|RFC2132|DHCP Message Type}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="Decline" access="readOnly">
        <description>
          The total number of DHCPDECLINE messages sent by the client, as
          defined in {{bibref|RFC2132|DHCP Message Type}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="Release" access="readOnly">
        <description>
          The total number of DHCPRELEASE messages sent by the client, as
          defined in {{bibref|RFC2132|DHCP Message Type}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="Inform" access="readOnly">
        <description>
          The total number of DHCPINFORM messages sent by the client, as
          defined in {{bibref|RFC2132|DHCP Message Type}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="ACK" access="readOnly">
        <description>
          The total number of DHCPACK messages received by the client, as
          defined in {{bibref|RFC2132|DHCP Message Type}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="NACK" access="readOnly">
        <description>
          The total number of DHCPNACK messages received by the client, as
          defined in {{bibref|RFC2132|DHCP Message Type}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="ForceRenew" access="readOnly">
        <description>
          The total number of DHCPFORCERNEW messages received by the client, as
          defined in {{bibref|RFC3203|DHCP reconfigure extension}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="DiscardedPackets" access="readOnly">
        <description>
          The total number of DHCP packets discarded by the client. Packets can
          be discarded due to illegal message format and content, incorrect
          received bytes, etc.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="TransmitFailure" access="readOnly">
        <description>
          The total number of DHCP messages that failed to transmit.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="Reset" access="readWrite">
        <description>
          Set this to {{true}} to reset all this object's statistics counters
          to zero.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DHCPv4.Server." access="readOnly" minEntries="1"
        maxEntries="1" version="2.0">
      <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" version="2.0">
      <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>
      <uniqueKey functional="true">
        <parameter ref="Order"/>
      </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" version="2.0">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Order" access="readWrite">
        <description>
          {{datatype|expand}}

          For each DHCP request, the highest ordered entry that matches the
          association criteria is applied. All lower order entries are ignored.
        </description>
        <syntax>
          <dataType ref="Order"/>
        </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="AllowedDevices" access="readWrite" version="2.13">
        <description>
          Pool association criterion. Determines which devices are allowed,
          {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="All">
              <description>All clients are served.</description>
            </enumeration>
            <enumeration value="Known">
              <description>
                Only clients, whose MAC address is listed in the
                {{object|Client.{i}.}} table (parameter
                {{param|Client.{i}.Chaddr}}) or in the
                {{object|StaticAddress.{i}.}} table (parameter
                {{param|StaticAddress.{i}.Chaddr}}) are served.

                The parameter {{param|Chaddr}} is not used, if this value is
                set.
              </description>
            </enumeration>
            <enumeration value="Unknown">
              <description>
                Only clients, whose MAC address is '''not''' listed in the
                {{object|Client.{i}.}} table (parameter
                {{param|Client.{i}.Chaddr}}) or in the
                {{object|StaticAddress.{i}.}} table (parameter
                {{param|StaticAddress.{i}.Chaddr}}) are served.
              </description>
            </enumeration>
          </string>
        </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">
            <size/>
          </list>
          <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">
            <size/>
          </list>
          <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">
            <size/>
          </list>
          <dataType ref="IPv4Address"/>
        </syntax>
      </parameter>

      <parameter name="WINSServers" access="readWrite" version="2.19">
        <description>
          Represent the WINS servers offered to DHCP clients.
        </description>
        <syntax>
          <list/>
          <dataType ref="IPv4Address"/>
          <default type="object" value="[]"/>
        </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="DSCPMark" access="readWrite" version="2.19">
        <description>
          Diffserv code point to be used for outgoing DHCP messages.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="63"/>
          </unsignedInt>
          <default type="object" value="48"/>
        </syntax>
      </parameter>

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

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

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

    <object name="Device.DHCPv4.Server.Pool.{i}.StaticAddress.{i}."
        access="readWrite" numEntriesParameter="StaticAddressNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded"
        version="2.0">
      <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 functional="true">
        <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" version="2.0">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </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"
        version="2.0">
      <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 functional="true">
        <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" version="2.0">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Tag" access="readWrite">
        <description>
          Option tag as defined in {{bibref|RFC2132}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="254"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Value" access="readWrite">
        <description>
          A hexbinary encoded option value.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="0" maxLength="255"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DHCPv4.Server.Pool.{i}.Client.{i}." access="readOnly"
        numEntriesParameter="ClientNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.2">
      <description>
        DHCPv4 client table.

        This table lists details of DHCPv4 clients that matched the filter
        criteria of this {{object|#}} entry.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="Chaddr"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.2">
        <description>
          {{datatype|expand}}

          Note: There is no guarantee that the {{param}} value on
          automatically-created {{object}} instances will be retained. This is
          because automatically-created {{object}} instances can be transitory.
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Chaddr" access="readOnly">
        <description>
          MAC address of the DHCPv4 client.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="Active" access="readOnly">
        <description>
          Whether or not the DHCPv4 client is currently present on the LAN. The
          method of presence detection is a local matter to the CPE.

          The ability to list inactive DHCPv4 clients is OPTIONAL. If the CPE
          includes inactive DHCPv4 clients in this table, {{param}} MUST be set
          to {{false}} for each inactive DHCPv4 client. The length of time an
          inactive DHCPv4 client remains listed in this table is a local matter
          to the CPE.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

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

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

    <object name="Device.DHCPv4.Server.Pool.{i}.Client.{i}.IPv4Address.{i}."
        access="readOnly" numEntriesParameter="IPv4AddressNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.2">
      <description>
        IPv4 addresses assigned to this client.
      </description>
      <uniqueKey functional="true">
        <parameter ref="IPAddress"/>
      </uniqueKey>

      <parameter name="IPAddress" access="readOnly">
        <description>
          IPv4 address.
        </description>
        <syntax>
          <dataType ref="IPv4Address"/>
        </syntax>
      </parameter>

      <parameter name="LeaseTimeRemaining" access="readOnly">
        <description>
          The time at which the DHCP lease will expire or {{null}} if not
          known. For an infinite lease, the parameter value MUST be
          9999-12-31T23:59:59Z.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DHCPv4.Server.Pool.{i}.Client.{i}.Option.{i}."
        access="readOnly" numEntriesParameter="OptionNumberOfEntries"
        minEntries="0" maxEntries="unbounded" dmr:noUniqueKeys="true"
        version="2.2">
      <description>
        DHCPv4 options supplied by this client, e.g. ''VendorClassID'' (Option
        60), ''ClientID'' (option 61) or ''UserClassID'' (Option 77).
      </description>

      <parameter name="Tag" access="readOnly">
        <description>
          Option tag as defined in {{bibref|RFC2132}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Value" access="readOnly">
        <description>
          A hexbinary encoded option value.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="0" maxLength="255"/>
          </hexBinary>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DHCPv4.Server.Stats." access="readOnly"
        version="2.19">
      <description>
        Provide statistics for the embedded DHCP Server.
      </description>

      <parameter name="Discover" access="readOnly">
        <description>
          The total number of DHCPDISCOVER messages received by the server, as
          defined in {{bibref|RFC2132|DHCP Message Type}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="Offer" access="readOnly">
        <description>
          The total number of DHCPOFFER messages sent by the server, as defined
          in {{bibref|RFC2132|DHCP Message Type}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="Request" access="readOnly">
        <description>
          The total number of DHCPREQUEST messages received by the server, as
          defined in {{bibref|RFC2132|DHCP Message Type}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="ACK" access="readOnly">
        <description>
          The total number of DHCPACK messages sent by the server, as defined
          in {{bibref|RFC2132|DHCP Message Type}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="NACK" access="readOnly">
        <description>
          The total number of DHCPNACK messages sent by the server, as defined
          in {{bibref|RFC2132|DHCP Message Type}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="Decline" access="readOnly">
        <description>
          The total number of DHCPDECLINE messages received by the server, as
          defined in {{bibref|RFC2132|DHCP Message Type}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="Release" access="readOnly">
        <description>
          The total number of DHCPRELEASE messages received by the server, as
          defined in {{bibref|RFC2132|DHCP Message Type}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="Inform" access="readOnly">
        <description>
          The total number of DHCPINFORM messages received by the server, as
          defined in {{bibref|RFC2132|DHCP Message Type}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="ForceRenew" access="readOnly">
        <description>
          The total number of DHCPFORCERNEW messages sent by the server, as
          defined in {{bibref|RFC3203|DHCP reconfigure extension}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="DiscardedPackets" access="readOnly">
        <description>
          The total number of DHCP packets discarded by the server. Packets can
          be discarded due to illegal message format and content, incorrect
          received bytes, etc.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="TransmitFailure" access="readOnly">
        <description>
          The total number of DHCP messages that failed to transmit.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="RelayOptionDropped" access="readOnly">
        <description>
          The total number of DHCP messages with dropped relay options.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="SecondServerDetected" access="readOnly">
        <description>
          The total number of times a second DHCP server was detected.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="Reset" access="readWrite">
        <description>
          Set this to {{true}} to reset all this object's statistics counters
          to zero.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DHCPv4.Relay." access="readOnly" minEntries="1"
        maxEntries="1" version="2.0">
      <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"
        version="2.0">
      <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" version="2.0">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Order" access="readWrite">
        <description>
          {{datatype|expand}}

          For each DHCP request, the highest ordered entry that matches the
          association criteria is applied. All lower order entries are ignored.
        </description>
        <syntax>
          <dataType ref="Order"/>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite">
        <description>
          {{reference}} The IP Interface associated with the ''Forwarding''
          entry.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="###.IP.Interface."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="VendorClassID" access="readWrite">
        <description>
          Pool association criterion.

          Used to identify one or more LAN devices, value of the DHCP Vendor
          Class Identifier (Option 60) as defined in {{bibref|RFC2132}},
          matched according to the criterion in {{param|VendorClassIDMode}}.
          Case sensitive.

          This is a normal string, e.g. "abc" is represented as "abc" and not
          say "616263" hex. However, if the value includes non-printing
          characters then such characters have to be represented using XML
          escapes, e.g. #x0a for line-feed.

          {{empty}} indicates this criterion is not used as a relay
          classification criterion.
        </description>
        <syntax>
          <string>
            <size maxLength="255"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="VendorClassIDExclude" access="readWrite">
        <description>
          If {{false}}, matching packets are those that match the
          {{param|VendorClassID}} entry, if specified.

          If {{true}}, matching packets are those that do not match the
          {{param|VendorClassID}} entry, if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="VendorClassIDMode" access="readWrite">
        <description>
          {{param|VendorClassID}} pattern match criterion. {{enum}}

          For example, if {{param|VendorClassID}} is "Example" then an Option
          60 value of "Example device" will match with {{param}} values of
          {{enum|Prefix}} or {{enum|Substring}}, but not with {{enum|Exact}} or
          {{enum|Suffix}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Exact"/>
            <enumeration value="Prefix"/>
            <enumeration value="Suffix"/>
            <enumeration value="Substring"/>
          </string>
          <default type="object" value="Exact"/>
        </syntax>
      </parameter>

      <parameter name="ClientID" access="readWrite">
        <description>
          Pool association criterion.

          A hexbinary string used to identify one or more LAN devices, value of
          the DHCP Client Identifier (Option 61) as defined in
          {{bibref|RFC2132}}. The option value is binary, so an exact match is
          REQUIRED.

          {{empty}} indicates this criterion is not used as a relay
          classification criterion.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="255"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="ClientIDExclude" access="readWrite">
        <description>
          If {{false}}, matching packets are those that match the
          {{param|ClientID}} entry, if specified.

          If {{true}}, matching packets are those that do not match the
          {{param|ClientID}} entry, if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="UserClassID" access="readWrite">
        <description>
          Pool association criterion.

          A hexbinary string used to identify one or more LAN devices, value of
          the DHCP User Class Identifier (Option 77) as defined in
          {{bibref|RFC3004}}.

          {{empty}} indicates this criterion is not used as a relay
          classification criterion.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="255"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="UserClassIDExclude" access="readWrite">
        <description>
          If {{false}}, matching packets are those that match the
          {{param|UserClassID}} entry, if specified.

          If {{true}}, matching packets are those that do not match the
          {{param|UserClassID}} entry, if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Chaddr" access="readWrite">
        <description>
          Pool association criterion.

          Hardware address (MAC address) of the physical interface of the DHCP
          client.

          {{empty}} indicates this criterion is not used as a relay
          classification criterion.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="ChaddrMask" access="readWrite">
        <description>
          Bit-mask for the MAC address, where matching of a packet's MAC
          address with the {{param|Chaddr}} is only to be done for bit
          positions set to one in the mask. A mask of FF:FF:FF:FF:FF:FF or
          {{empty}} indicates all bits of the {{param|Chaddr}} are to be used
          for relay classification.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="ChaddrExclude" access="readWrite">
        <description>
          If {{false}}, matching packets are those that match the (masked)
          {{param|Chaddr}} entry, if specified.

          If {{true}}, matching packets are those that do not match the
          (masked) {{param|Chaddr}} entry, if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="LocallyServed" access="readWrite">
        <description>
          If {{true}}, incoming DHCP requests will be forwarded to the CPE DHCP
          Server. If {{false}}, incoming DHCP requests will be forwarded to the
          {{param|DHCPServerIPAddress}} configured for this forwarding entry.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="DHCPServerIPAddress" access="readWrite">
        <description>
          IPv4 address of the DHCP server, where the request has to be sent to
          when there is a conditional match with this forwarding entry and
          {{param|LocallyServed}} is {{false}}. If {{param|LocallyServed}} is
          {{false}} and this parameter is not configured, then the DHCP request
          is dropped.
        </description>
        <syntax>
          <dataType ref="IPv4Address"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DHCPv6." access="readOnly" minEntries="1"
        maxEntries="1" version="2.2">
      <description>
        The Dynamic Host Configuration Protocol (DHCP) IPv6 object
        {{bibref|RFC8415}}. This entire object applies to IPv6 only. It
        contains the {{object|Client}} and {{object|Server}} objects.
      </description>

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

    <object name="Device.DHCPv6.Client.{i}." access="readWrite"
        numEntriesParameter="ClientNumberOfEntries" enableParameter="Enable"
        minEntries="1" maxEntries="unbounded" version="2.2">
      <description>
        This object contains DHCPv6 client settings for an associated ''IP
        Interface'' indicated by {{param|Interface}}.

        For enabled table entries, if {{param|Interface}} is not a valid
        reference to an IPv6-capable interface (that is attached to the IPv6
        stack), then the table entry is inoperable and the CPE MUST set
        {{param|Status}} to {{enum|Error_Misconfigured|Status}}.

        Note: The {{object}} table includes a unique key parameter that is a
        strong reference. If a strongly referenced object is deleted, the CPE
        will set the referencing parameter to {{empty}}. However, doing so
        under these circumstances might cause the updated {{object}} row to
        then violate the table's unique key constraint; if this occurs, the CPE
        MUST set {{param|Status}} to {{enum|Error_Misconfigured|Status}} and
        disable the offending {{object}} row.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="Interface"/>
      </uniqueKey>

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

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

      <parameter name="Interface" access="readWrite">
        <description>
          {{reference}} The IP Interface associated with the {{object}} entry.
          This will reference an IPv6-capable interface (that is attached to
          the IPv6 stack), otherwise the table entry will be inoperable.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="##.IP.Interface."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The status of this table entry. {{enum}}

          The {{enum|Error_Misconfigured}} value indicates that a necessary
          configuration value is undefined or invalid.

          The {{enum|Error}} value MAY be used by the CPE to indicate a locally
          defined error condition.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Enabled"/>
            <enumeration value="Error_Misconfigured"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

      <parameter name="DUID" access="readOnly">
        <description>
          The client's DHCP Unique Identifier (DUID) {{bibref|RFC8415|Section
          11}}. {{param}} is set by the CPE.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="130"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="RequestAddresses" access="readWrite">
        <description>
          Enables or disables inclusion of the ''Identity Association (IA) for
          Non-Temporary Address'' option OPTION_IA_NA(3)
          {{bibref|RFC8415|Section 21.4}} in Solicit messages.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="true"/>
        </syntax>
      </parameter>

      <parameter name="RequestPrefixes" access="readWrite">
        <description>
          Enables or disables inclusion of the ''Identity Association (IA) for
          Prefix Delegation'' option OPTION_IA_PD(25) {{bibref|RFC8415|Section
          21.22}} in Solicit messages.

          Note that this is only appropriate for an upstream interface on a
          requesting router, e.g. for an RG WAN interface.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="RapidCommit" access="readWrite">
        <description>
          Enables or disables inclusion of the ''Rapid Commit'' option
          OPTION_RAPID_COMMIT(14) {{bibref|RFC8415|Section 21.14}} in Solicit
          messages.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Renew" access="readWrite"
          dmr:previousParameter="RapidCommit" version="2.2">
        <description>
          When set to {{true}}, the {{object}} will renew its DHCPv6-supplied
          information (i.e. the CPE will do a renew or information request as
          needed, updating both stateful and stateless parameter values
          discovered by this Client instance).
        </description>
        <syntax command="true">
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="SuggestedT1" access="readWrite">
        <description>
          T1 value, in {{units}}, that the client SHOULD use when sending IA
          options, e.g. OPTION_IA_NA {{bibref|RFC8415|Section 21.4}} and
          OPTION_IA_PD {{bibref|RFC8415|Section 10}}.

          A value of -1 indicates that no T1 value is specified.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
            <units value="seconds"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="SuggestedT2" access="readWrite">
        <description>
          T2 value, in {{units}}, that the client SHOULD use when sending IA
          options, e.g. OPTION_IA_NA {{bibref|RFC8415|Section 21.4}} and
          OPTION_IA_PD {{bibref|RFC8415|Section 21.22}}.

          A value of -1 indicates that no T2 value is specified.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
            <units value="seconds"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="SupportedOptions" access="readOnly">
        <description>
          {{list}} The options that the client is able to process in server
          responses. This list MUST include both top-level and encapsulated
          options, e.g. if the client is able to process OPTION_IA_NA (3) with
          an encapsulated OPTION_IAADDR (5), the list would be expected to
          include both 3 and 5.
        </description>
        <syntax>
          <list/>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="RequestedOptions" access="readWrite">
        <description>
          {{list}} An ordered list of the top-level options (i.e. not
          encapsulated options) that the client will explicitly request from
          the server.

          This parameter is intended only for options that are not necessary
          for the basic operation of the protocol, and are not modeled
          elsewhere. For example, it is appropriate for OPTION_DNS_SERVERS
          {{bibref|RFC3646}} but is not appropriate for OPTION_SERVERID (which
          is part of the protocol), OPTION_IA_NA (which is modeled via
          {{param|RequestAddresses}}) or OPTION_IA_PD (which is modeled via
          {{param|RequestPrefixes}}). However, the CPE MUST NOT reject an
          attempt to set this parameter to a value that includes options that
          it regards as inappropriate; instead, it MUST accept the requested
          options and handle them as best it can.

          Loosely speaking, these are the options that the client will include
          in OPTION_ORO {{bibref|RFC8415}} but the client is free to decide (in
          accordance with {{bibref|RFC8415}}) in which messages to request
          which option, whether also to request additional options, whether not
          to request inappropriate options, and in which order to request any
          options that are also in {{param|SupportedOptions}}.
        </description>
        <syntax>
          <list/>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="AuthenticationProtocol" access="readWrite"
          version="2.19">
        <description>
          Specifies the authentication protocol to be used, as explained in
          {{bibref|RFC8415|Chapter 20.2 Summary of DHCP Authentication}}.
        </description>
        <syntax>
          <string>
            <enumeration value="None"/>
            <enumeration value="ConfigurationToken">
              <description>
                Uses delayed authentication, as specified in
                {{bibref|RFC3118|Chapter 4 Configuration Token}}.
              </description>
            </enumeration>
            <enumeration value="DelayedAuthentication">
              <description>
                Uses delayed authentication, as specified in
                {{bibref|RFC3315|Chapter 21.4 Delayed Authentication}}.
              </description>
            </enumeration>
            <enumeration value="ReconfigureKeyAuthentication">
              <description>
                Uses delayed authentication, as specified in
                {{bibref|RFC8415|Chapter 20.4 Reconfiguration Key
                Authentication Protocol}}.
              </description>
            </enumeration>
          </string>
          <default type="object" value="None"/>
        </syntax>
      </parameter>

      <parameter name="DSCPMark" access="readWrite" version="2.19">
        <description>
          Diffserv code point to be used for outgoing DHCP messages.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="63"/>
          </unsignedInt>
          <default type="object" value="48"/>
        </syntax>
      </parameter>

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

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

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

    <object name="Device.DHCPv6.Client.{i}.Server.{i}." access="readOnly"
        numEntriesParameter="ServerNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.2">
      <description>
        This is a transitory table that lists the discovered DHCPv6 servers (it
        does ''not'' model a local DHCP server). Table entries are
        automatically created to correspond with these servers. However, it is
        a local matter to the CPE when to delete old table entries.
      </description>
      <uniqueKey functional="true">
        <parameter ref="SourceAddress"/>
      </uniqueKey>

      <parameter name="SourceAddress" access="readOnly">
        <description>
          The IP address from which the message most recently received from
          this server was sent.
        </description>
        <syntax>
          <dataType ref="IPv6Address"/>
        </syntax>
      </parameter>

      <parameter name="DUID" access="readOnly">
        <description>
          The server's DHCP Unique Identifier (DUID) {{bibref|RFC8415|Section
          11}} as received via OPTION_SERVERID.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="130"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="InformationRefreshTime" access="readOnly">
        <description>
          The OPTION_INFORMATION_REFRESH_TIME value {{bibref|RFC4242}} that was
          most recently received from this server, converted to the
          ''dateTime'' at which the associated information will expire. If no
          such option has been received, the parameter value MUST be the
          "Unknown Time" {{null}}. If the information will never expire, the
          parameter value MUST be infinite time 9999-12-31T23:59:59Z.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DHCPv6.Client.{i}.SentOption.{i}." access="readWrite"
        numEntriesParameter="SentOptionNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded"
        version="2.2">
      <description>
        The top-level options and option values (including any encapsulated
        options) that the client will send to the server.

        This table is intended only for options that are not part of the basic
        operation of the protocol, and whose values are simple, do not often
        change and are not modeled elsewhere. For example, it is appropriate
        for OPTION_USER_CLASS (whose value is a list of user classes) but is
        not appropriate for OPTION_RECONF_MSG (which is part of the protocol),
        OPTION_IA_NA (which is modeled via {{param|#.RequestAddresses}}) or
        OPTION_RAPID_COMMIT (which is modeled via {{param|#.RapidCommit}}).
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="Tag"/>
      </uniqueKey>

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

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

      <parameter name="Tag" access="readWrite">
        <description>
          Option tag (code) {{bibref|RFC8415|Section 21.1}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Value" access="readWrite">
        <description>
          A hexbinary encoded option data {{bibref|RFC8415|Section 21.1}}.

          Note: The length of the option data is ''option-len'' octets, as
          specified in {{bibref|RFC8415|Section 21.1}}.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="0" maxLength="65535"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DHCPv6.Client.{i}.ReceivedOption.{i}."
        access="readOnly" numEntriesParameter="ReceivedOptionNumberOfEntries"
        minEntries="0" maxEntries="unbounded" dmr:noUniqueKeys="true"
        version="2.2">
      <description>
        This is a transitory table that lists all the options received from all
        servers. Table entries are automatically created to correspond with
        received options. However, it is a local matter to the CPE when to
        delete old table entries.

        If the same option is received multiple times, whether from one or more
        servers, it is up to the CPE to decide which entries to include (i.e.
        whether the same option will be present multiple times). In order to
        allow for the same option to be present multiple times within the
        table, this table has no unique key defined.
      </description>

      <parameter name="Tag" access="readOnly">
        <description>
          Option tag (code) {{bibref|RFC8415|Section 21.1}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Value" access="readOnly">
        <description>
          A hexbinary encoded option data {{bibref|RFC8415|Section 21.1}}.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="0" maxLength="65535"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="Server" access="readOnly">
        <description>
          {{reference}} This is the server that sent the option to the client.
          Each {{object}} entry MUST have an associated server.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="#.Server."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DHCPv6.Client.{i}.Retransmission." access="readOnly"
        version="2.18">
      <description>
        This object enables the configurion of the DHCPv6 retransmission
        behavior according to the guidelines described in
        {{bibref|RFC8415|Section 7.6}}.
      </description>

      <parameter name="SolicitMaxDelay" access="readWrite">
        <description>
          Maximum delay of first Solicit, expressed in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="1"/>
        </syntax>
      </parameter>

      <parameter name="SolicitInitialTimeout" access="readWrite">
        <description>
          Initial solicit, expressed in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="1"/>
        </syntax>
      </parameter>

      <parameter name="SolicitMaxTimeout" access="readWrite">
        <description>
          Maximum solicit timeout value, expressed in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="3600"/>
        </syntax>
      </parameter>

      <parameter name="RequestInitialTimeout" access="readWrite">
        <description>
          Initial request timeout, expressed in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="1"/>
        </syntax>
      </parameter>

      <parameter name="RequestMaxTimeout" access="readWrite">
        <description>
          Maximum request timeout, expressed in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="30"/>
        </syntax>
      </parameter>

      <parameter name="RequestMaxRetry" access="readWrite">
        <description>
          Maximum request retry attempts.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="10"/>
        </syntax>
      </parameter>

      <parameter name="ConfirmMaxDelay" access="readWrite">
        <description>
          Maximum delay of first confirm, expressed in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="1"/>
        </syntax>
      </parameter>

      <parameter name="ConfirmInitialTimeout" access="readWrite">
        <description>
          Initial confirm timeout, expressed in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="1"/>
        </syntax>
      </parameter>

      <parameter name="ConfirmMaxTimeout" access="readWrite">
        <description>
          Maximum confirm timeout, expressed in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="4"/>
        </syntax>
      </parameter>

      <parameter name="ConfirmMaxDuration" access="readWrite">
        <description>
          Maximum confirm duration, expressed in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="10"/>
        </syntax>
      </parameter>

      <parameter name="RenewInitialTimeout" access="readWrite">
        <description>
          Initial renew timeout, expressed in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="10"/>
        </syntax>
      </parameter>

      <parameter name="RenewMaxTimeout" access="readWrite">
        <description>
          Maximum renew timeout value, expressed in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="600"/>
        </syntax>
      </parameter>

      <parameter name="RebindInitialTimeout" access="readWrite">
        <description>
          Initial rebind timeout, expressed in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="10"/>
        </syntax>
      </parameter>

      <parameter name="RebindMaxTimeout" access="readWrite">
        <description>
          Maximum rebind timeout value, expressed in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="600"/>
        </syntax>
      </parameter>

      <parameter name="InformationRequestMaxDelay" access="readWrite">
        <description>
          Maximum delay of first information-request, expressed in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="1"/>
        </syntax>
      </parameter>

      <parameter name="InformationRequestInitialTimeout" access="readWrite">
        <description>
          Initial information-request timeout, expressed in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="1"/>
        </syntax>
      </parameter>

      <parameter name="InformationRequestMaxTimeout" access="readWrite">
        <description>
          Maximum information-request timeout, expressed in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="3600"/>
        </syntax>
      </parameter>

      <parameter name="ReleaseInitialTimeout" access="readWrite">
        <description>
          Initial Release timeout, expressed in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="1"/>
        </syntax>
      </parameter>

      <parameter name="ReleaseMaxAttempts" access="readWrite">
        <description>
          Maximum release retry attempts.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="4"/>
        </syntax>
      </parameter>

      <parameter name="DeclineInitialTimeout" access="readWrite">
        <description>
          Initial Decline timeout, expressed in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="1"/>
        </syntax>
      </parameter>

      <parameter name="DeclineMaxAttempts" access="readWrite">
        <description>
          Maximum decline retry attempts.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="4"/>
        </syntax>
      </parameter>

      <parameter name="ReconfigureInitialTimeout" access="readWrite">
        <description>
          Initial reconfigure timeout, expressed in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="2"/>
        </syntax>
      </parameter>

      <parameter name="ReconfigureMaxAttempts" access="readWrite">
        <description>
          Maximum reconfigure attempts.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="8"/>
        </syntax>
      </parameter>

      <parameter name="HopCountLimit" access="readWrite">
        <description>
          Maximum hop count in a relay-forward message.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="32"/>
        </syntax>
      </parameter>

      <parameter name="InformationRefreshTime" access="readWrite">
        <description>
          Default information refresh time, expressed in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="86400"/>
        </syntax>
      </parameter>

      <parameter name="MinInformationRefreshTime" access="readWrite">
        <description>
          Minimum information refresh time, expressed in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="600"/>
        </syntax>
      </parameter>

      <parameter name="MaxWaitTime" access="readWrite">
        <description>
          Maximum required time to wait for a response, expressed in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="60"/>
        </syntax>
      </parameter>

      <parameter name="TimeoutRandomize" access="readWrite">
        <description>
          The Randomization factor for the retransmission timeout, in
          {{units}}, as defined in {{bibref|RFC8415|15 Reliability of
          Client-Initiated Message Exchanges}}.

          E.g. a timeout of 1000ms with a randomization of 100 will end up
          between 900 and 1100 ms.
        </description>
        <syntax>
          <int>
            <units value="ms"/>
          </int>
          <default type="object" value="100"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DHCPv6.Client.{i}.Stats." access="readOnly"
        version="2.19">
      <description>
        Provide statistics for the embedded DHCPv6 Client.
      </description>

      <parameter name="Solicit" access="readOnly">
        <description>
          The total number of SOLICIT messages sent by the client, as defined
          in {{bibref|RFC8415|Dynamic Host Configuration Protocol for IPv6}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="Advertise" access="readOnly">
        <description>
          The total number of ADVERTISE messages received by the client, as
          defined in {{bibref|RFC8415|Dynamic Host Configuration Protocol for
          IPv6}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="Request" access="readOnly">
        <description>
          The total number of REQUEST messages sent by the client, as defined
          in {{bibref|RFC8415|Dynamic Host Configuration Protocol for IPv6}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="Confirm" access="readOnly">
        <description>
          The total number of CONFIRM messages sent by the client, as defined
          in {{bibref|RFC8415|Dynamic Host Configuration Protocol for IPv6}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="Renew" access="readOnly">
        <description>
          The total number of RENEW messages sent by the client, as defined in
          {{bibref|RFC8415|Dynamic Host Configuration Protocol for IPv6}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="Rebind" access="readOnly">
        <description>
          The total number of REBIND messages sent by the client, as defined in
          {{bibref|RFC8415|Dynamic Host Configuration Protocol for IPv6}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="Reply" access="readOnly">
        <description>
          The total number of REPLY messages received by the client, as defined
          in {{bibref|RFC8415|Dynamic Host Configuration Protocol for IPv6}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="Release" access="readOnly">
        <description>
          The total number of RELEASE packets sent by the client, as defined in
          {{bibref|RFC8415|Dynamic Host Configuration Protocol for IPv6}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="Decline" access="readOnly">
        <description>
          The total number of DECLINE messages sent by the client, as defined
          in {{bibref|RFC8415|Dynamic Host Configuration Protocol for IPv6}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="Reconfigure" access="readOnly">
        <description>
          The total number of RECONFIGURE messages received by the client, as
          defined in {{bibref|RFC8415|Dynamic Host Configuration Protocol for
          IPv6}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="InformationRequest" access="readOnly">
        <description>
          The total number of INFORMATION-REQUEST messages sent by the client,
          as defined in {{bibref|RFC8415|Dynamic Host Configuration Protocol
          for IPv6}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="DiscardedPackets" access="readOnly">
        <description>
          The total number of DHCP packets discarded by the client. Packets can
          be discarded due to illegal message format and content, incorrect
          received bytes, etc.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="TransmitFailure" access="readOnly">
        <description>
          The total number of DHCP messages that failed to transmit.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="Reset" access="readWrite">
        <description>
          Set this to {{true}} to reset all this object's statistics counters
          to zero.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DHCPv6.Server." access="readOnly" minEntries="1"
        maxEntries="1" version="2.2">
      <description>
        DHCPv6 server configuration.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the DHCPv6 server function.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

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

    <object name="Device.DHCPv6.Server.Pool.{i}." access="readWrite"
        numEntriesParameter="PoolNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.2">
      <description>
        DHCPv6 server pool table.

        Each instance of this object defines a DHCPv6 server pool. Client
        requests are associated with pools based on criteria such as source
        interface, supplied DHCPv6 options, and source address.

        Overlapping pool ranges MUST be supported.

        For enabled table entries, if {{param|Interface}} is not a valid
        reference to an IPv6-capable interface (that is attached to the IPv6
        stack) then the table entry is inoperable and the CPE MUST set
        {{param|Status}} to {{enum|Error_Misconfigured|Status}}.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="Order"/>
      </uniqueKey>

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

      <parameter name="Status" access="readOnly">
        <description>
          The status of this entry. {{enum}}

          The {{enum|Error_Misconfigured}} value indicates that a necessary
          configuration value is undefined or invalid.

          The {{enum|Error}} value MAY be used by the CPE to indicate a locally
          defined error condition.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Enabled"/>
            <enumeration value="Error_Misconfigured"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

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

      <parameter name="Order" access="readWrite">
        <description>
          {{datatype|expand}}

          For each DHCPv6 request, the highest ordered entry that matches the
          association criteria is applied. All lower order entries are ignored.
        </description>
        <syntax>
          <dataType ref="Order"/>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite">
        <description>
          {{reference}} The IP Interface associated with the {{object}} entry.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="###.IP.Interface."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DUID" access="readWrite">
        <description>
          Pool association criterion.

          A hexbinary string used to identify one or more LAN devices, value of
          the DHCPv6 Client Identifier (Option 1) {{bibref|RFC8415|Section
          21.2}}. The option value is binary, so an exact match is REQUIRED.

          {{empty}} indicates this criterion is not used.

          Note: DHCPv6 Option 1 (DUID) is sometimes referred to as ''Client
          Identifier''.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="130"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DUIDExclude" access="readWrite">
        <description>
          If {{false}}, matching packets are those that match the
          {{param|DUID}} entry, if specified.

          If {{true}}, matching packets are those that do not match the
          {{param|DUID}} entry, if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="VendorClassID" access="readWrite">
        <description>
          Pool association criterion.

          A hexbinary string used to identify one or more LAN devices, value of
          the DHCPv6 Vendor Class Identifier (Option 16)
          {{bibref|RFC8415|Section 21.16}}. The option value is binary, so an
          exact match is REQUIRED.

          {{empty}} indicates this criterion is not used.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="65535"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="VendorClassIDExclude" access="readWrite">
        <description>
          If {{false}}, matching packets are those that match the
          {{param|VendorClassID}} entry, if specified.

          If {{true}}, matching packets are those that do not match the
          {{param|VendorClassID}} entry, if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="UserClassID" access="readWrite">
        <description>
          Pool association criterion.

          A hexbinary string used to identify one or more LAN devices, value of
          the DHCPv6 User Class Identifier (Option 15) {{bibref|RFC8415|Section
          21.15}}.

          {{empty}} indicates this criterion is not used.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="65535"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="UserClassIDExclude" access="readWrite">
        <description>
          If {{false}}, matching packets are those that match the
          {{param|UserClassID}} entry, if specified.

          If {{true}}, matching packets are those that do not match the
          {{param|UserClassID}} entry, if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="SourceAddress" access="readWrite">
        <description>
          Pool association criterion.

          Source address (link-layer address) of DHCPv6 messages sent from the
          DHCPv6 client. This criterion is only likely to be useful if this is
          a link-layer address.

          {{empty}} indicates this criterion is not used for serving.
        </description>
        <syntax>
          <dataType ref="IPv6Address"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SourceAddressMask" access="readWrite">
        <description>
          Bit-mask for the source address, where matching of a packet's source
          address with the {{param|SourceAddress}} is only to be done for bit
          positions set to one in the mask. A mask of {{empty}} indicates all
          bits of the {{param|SourceAddress}} are to be used.
        </description>
        <syntax>
          <dataType ref="IPv6Address"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SourceAddressExclude" access="readWrite">
        <description>
          If {{false}}, matching packets are those that match the (masked)
          {{param|SourceAddress}} entry, if specified.

          If {{true}}, matching packets are those that do not match the
          (masked) {{param|SourceAddress}} entry, if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="IANAEnable" access="readWrite">
        <description>
          Enables or disables IANA offers.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="IANAManualPrefixes" access="readWrite">
        <description>
          {{list}} {{reference}}

          Manually-configured prefixes from which IA_NA addresses will be
          assigned. Each referenced prefix MUST have a
          {{param|###.IP.Interface.{i}.IPv6Prefix.{i}.StaticType}} of
          {{enum|Static|###.IP.Interface.{i}.IPv6Prefix.{i}.StaticType}} or
          {{enum|Child|###.IP.Interface.{i}.IPv6Prefix.{i}.StaticType}}. All
          clients that request IA_NA and match filter criteria on this
          {{param|Interface}} MUST be offered IA_NA addresses from all of the
          ''Valid''
          ({{param|###.IP.Interface.{i}.IPv6Prefix.{i}.ValidLifetime}} is
          infinite or in the future) /64 prefixes in this list.

          Prefixes MUST be associated with the interface instance referenced by
          {{param|Interface}}.
        </description>
        <syntax>
          <list maxItems="8">
            <size/>
          </list>
          <string>
            <pathRef refType="strong"
                targetParent="###.IP.Interface.{i}.IPv6Prefix."
                targetType="row"/>
          </string>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>

      <parameter name="IANAPrefixes" access="readOnly">
        <description>
          {{list}} {{reference}}

          All prefixes from which IA_NA addresses will be assigned. This list
          can include:

          * Prefixes from {{param|IANAManualPrefixes}} that are used for IA_NA
            offers.

          * Prefixes with {{param|###.IP.Interface.{i}.IPv6Prefix.{i}.Origin}}
            = {{enum|Child|###.IP.Interface.{i}.IPv6Prefix.{i}.Origin}} or
            {{enum|AutoConfigured|###.IP.Interface.{i}.IPv6Prefix.{i}.Origin}}
            associated with the interface instance referenced by
            {{param|Interface}}.
        </description>
        <syntax>
          <list maxItems="8">
            <size/>
          </list>
          <string>
            <pathRef refType="strong"
                targetParent="###.IP.Interface.{i}.IPv6Prefix."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="IAPDEnable" access="readWrite">
        <description>
          Enables or disables IAPD offers.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="IAPDManualPrefixes" access="readWrite">
        <description>
          {{list}} {{reference}}

          Manually-configured prefixes from which IA_PD prefixes will be
          derived. This list can include:

          * Prefixes with {{param|###.IP.Interface.{i}.IPv6Prefix.{i}.Origin}}
            = {{enum|Static|###.IP.Interface.{i}.IPv6Prefix.{i}.Origin}} or
            {{enum|PrefixDelegation|###.IP.Interface.{i}.IPv6Prefix.{i}.Origin}}
            associated with upstream interfaces (i.e. interfaces for which the
            physical layer interface object has ''Upstream'' = {{true}}).

          * Prefixes with
            {{param|###.IP.Interface.{i}.IPv6Prefix.{i}.StaticType}} =
            {{enum|Static|###.IP.Interface.{i}.IPv6Prefix.{i}.StaticType}} or
            {{enum|Child|###.IP.Interface.{i}.IPv6Prefix.{i}.StaticType}}
            associated with with the interface instance referenced by
            {{param|Interface}}.

          All clients that request IA_PD and match filter criteria on this
          {{param|Interface}} MUST be offered IA_PD prefixes derived from all
          of the ''Valid''
          ({{param|###.IP.Interface.{i}.IPv6Prefix.{i}.ValidLifetime}} is
          infinite or in the future) prefixes in this list.
        </description>
        <syntax>
          <list maxItems="8">
            <size/>
          </list>
          <string>
            <pathRef refType="strong"
                targetParent="###.IP.Interface.{i}.IPv6Prefix."
                targetType="row"/>
          </string>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>

      <parameter name="IAPDPrefixes" access="readOnly">
        <description>
          {{list}} {{reference}}

          All prefixes for which IA_PD prefixes will be assigned. This list can
          include:

          * Prefixes from {{param|IAPDManualPrefixes}} that are used for IA_PD
            offers.

          * Prefixes with {{param|###.IP.Interface.{i}.IPv6Prefix.{i}.Origin}}
            =
            {{enum|PrefixDelegation|###.IP.Interface.{i}.IPv6Prefix.{i}.Origin}}
            or
            {{enum|AutoConfigured|###.IP.Interface.{i}.IPv6Prefix.{i}.Origin}}
            associated with upstream interfaces (i.e. interfaces for which the
            physical layer interface object has ''Upstream'' = {{true}}).

          * Prefixes with {{param|###.IP.Interface.{i}.IPv6Prefix.{i}.Origin}}
            = {{enum|Child|###.IP.Interface.{i}.IPv6Prefix.{i}.Origin}} or
            {{enum|AutoConfigured|###.IP.Interface.{i}.IPv6Prefix.{i}.Origin}}
            associated with the interface instance referenced by
            {{param|Interface}}.
        </description>
        <syntax>
          <list maxItems="8">
            <size/>
          </list>
          <string>
            <pathRef refType="strong"
                targetParent="###.IP.Interface.{i}.IPv6Prefix."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="IAPDAddLength" access="readWrite">
        <description>
          The RECOMMENDED minimum number of bits to add to
          {{param|IAPDManualPrefixes}} or {{param|IAPDPrefixes}} in order to
          determine the length of prefixes that are offered in an IA_PD. The
          device is responsible for ensuring that it does not delegate a prefix
          longer than /64. The device can have additional logic that is used
          (in conjunction with this parameter) to determine the actual length
          of prefixes offered in an IA_PD.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="64"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="DSCPMark" access="readWrite" version="2.19">
        <description>
          Diffserv code point to be used for outgoing DHCP messages.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="63"/>
          </unsignedInt>
          <default type="object" value="48"/>
        </syntax>
      </parameter>

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

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

    <object name="Device.DHCPv6.Server.Pool.{i}.Client.{i}." access="readOnly"
        numEntriesParameter="ClientNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.2">
      <description>
        DHCPv6 client table.

        This table lists details of DHCPv6 clients that matched the filter
        criteria of this {{object|#}} entry.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="SourceAddress"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.2">
        <description>
          {{datatype|expand}}

          Note: There is no guarantee that the {{param}} value on
          automatically-created {{object}} instances will be retained. This is
          because automatically-created {{object}} instances can be transitory.
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="SourceAddress" access="readOnly">
        <description>
          Source address of the DHCPv6 client.
        </description>
        <syntax>
          <dataType ref="IPv6Address"/>
        </syntax>
      </parameter>

      <parameter name="Active" access="readOnly">
        <description>
          Whether or not the DHCPv6 client is currently present on the LAN. The
          method of presence detection is a local matter to the CPE.

          The ability to list inactive DHCPv6 clients is OPTIONAL. If the CPE
          includes inactive DHCPv6 clients in this table, {{param}} MUST be set
          to {{false}} for each inactive DHCPv6 client. The length of time an
          inactive DHCPv6 client remains listed in this table is a local matter
          to the CPE.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

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

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

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

    <object name="Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6Address.{i}."
        access="readOnly" numEntriesParameter="IPv6AddressNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.2">
      <description>
        IPv6 addresses assigned to this client via IA_NA.
      </description>
      <uniqueKey functional="true">
        <parameter ref="IPAddress"/>
      </uniqueKey>

      <parameter name="IPAddress" access="readOnly">
        <description>
          IPv6 address.
        </description>
        <syntax>
          <dataType ref="IPv6Address"/>
        </syntax>
      </parameter>

      <parameter name="PreferredLifetime" access="readOnly">
        <description>
          The time at which this address will cease to be preferred (i.e. will
          become deprecated), or {{null}} if not known. For an infinite
          lifetime, the parameter value MUST be 9999-12-31T23:59:59Z.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="ValidLifetime" access="readOnly">
        <description>
          The time at which this address will cease to be valid (i.e. will
          become invalid), or {{null}} if unknown. For an infinite lifetime,
          the parameter value MUST be 9999-12-31T23:59:59Z.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6Prefix.{i}."
        access="readOnly" numEntriesParameter="IPv6PrefixNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.2">
      <description>
        IPv6 prefixes delegated to this client via IA_PD.
      </description>
      <uniqueKey functional="true">
        <parameter ref="Prefix"/>
      </uniqueKey>

      <parameter name="Prefix" access="readOnly">
        <description>
          IPv6 address prefix.
        </description>
        <syntax>
          <dataType ref="IPv6Prefix"/>
        </syntax>
      </parameter>

      <parameter name="PreferredLifetime" access="readOnly">
        <description>
          The time at which this prefix will cease to be preferred (i.e. will
          become deprecated), or {{null}} if not known. For an infinite
          lifetime, the parameter value MUST be 9999-12-31T23:59:59Z.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="ValidLifetime" access="readOnly">
        <description>
          The time at which this prefix will cease to be valid (i.e. will
          become invalid), or {{null}} if unknown. For an infinite lifetime,
          the parameter value MUST be 9999-12-31T23:59:59Z.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DHCPv6.Server.Pool.{i}.Client.{i}.Option.{i}."
        access="readOnly" numEntriesParameter="OptionNumberOfEntries"
        minEntries="0" maxEntries="unbounded" dmr:noUniqueKeys="true"
        version="2.2">
      <description>
        DHCPv6 options supplied by this client, e.g. ''DUID'' (Option 1),
        ''UserClassID'' (Option 15) or ''VendorClassID'' (option 16).
      </description>

      <parameter name="Tag" access="readOnly">
        <description>
          Option tag (code) {{bibref|RFC8415|Section 21.1}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Value" access="readOnly">
        <description>
          A hexbinary encoded option value.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="0" maxLength="65535"/>
          </hexBinary>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DHCPv6.Server.Pool.{i}.Option.{i}."
        access="readWrite" numEntriesParameter="OptionNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded"
        version="2.2">
      <description>
        This object specifies the DHCPv6 options that MUST, if enabled, be
        offered to clients whose DHCPv6 requests are associated with this pool.
        If {{param|PassthroughClient}} is specified, and the referenced client
        has a value for a given option then the {{param|PassthroughClient}}
        option value will be sent instead of {{param|Value}}. Otherwise,
        {{param|Value}} will be sent.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="Tag"/>
      </uniqueKey>

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

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

      <parameter name="Tag" access="readWrite">
        <description>
          Option tag (code) {{bibref|RFC8415|Section 21.1}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Value" access="readWrite">
        <description>
          A hexbinary encoded option value.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="0" maxLength="65535"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="PassthroughClient" access="readWrite">
        <description>
          {{reference}} Indicates whether this {{object}} entry is configured
          for passthrough.

          If {{param}} is specified, and the referenced client (since boot) has
          received a value from an associated upstream DHCPv6 server for the
          given {{param|Tag}} option, then the referenced client's option value
          will be sent instead of {{param|Value}}. Otherwise, {{param|Value}}
          will be sent.

          {{empty}} indicates that passthrough is not configured for this
          {{object}} entry.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="###.Client."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DHCPv6.Server.Stats." access="readOnly"
        version="2.19">
      <description>
        Provide statistics for the embedded DHCPv6 Server.
      </description>

      <parameter name="Solicit" access="readOnly">
        <description>
          The total number of SOLICIT messages received by the server, as
          defined in {{bibref|RFC8415|Dynamic Host Configuration Protocol for
          IPv6}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="Advertise" access="readOnly">
        <description>
          The total number of ADVERTISE messages sent by the server, as defined
          in {{bibref|RFC8415|Dynamic Host Configuration Protocol for IPv6}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="Request" access="readOnly">
        <description>
          The total number of REQUEST messages received by the server, as
          defined in {{bibref|RFC8415|Dynamic Host Configuration Protocol for
          IPv6}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="Confirm" access="readOnly">
        <description>
          The total number of CONFIRM messages received by the server, as
          defined in {{bibref|RFC8415|Dynamic Host Configuration Protocol for
          IPv6}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="Renew" access="readOnly">
        <description>
          The total number of RENEW messages received by the server, as defined
          in {{bibref|RFC8415|Dynamic Host Configuration Protocol for IPv6}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="Rebind" access="readOnly">
        <description>
          The total number of REBIND messages received by the server, as
          defined in {{bibref|RFC8415|Dynamic Host Configuration Protocol for
          IPv6}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="Reply" access="readOnly">
        <description>
          The total number of REPLY messages sent by the server, as defined in
          {{bibref|RFC8415|Dynamic Host Configuration Protocol for IPv6}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="Release" access="readOnly">
        <description>
          The total number of RELEASE packets received by the server, as
          defined in {{bibref|RFC8415|Dynamic Host Configuration Protocol for
          IPv6}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="Decline" access="readOnly">
        <description>
          The total number of INFORM messages received by the server, as
          defined in {{bibref|RFC8415|Dynamic Host Configuration Protocol for
          IPv6}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="Reconfigure" access="readOnly">
        <description>
          The total number of RECONFIGURE messages sent by the server, as
          defined in {{bibref|RFC8415|Dynamic Host Configuration Protocol for
          IPv6}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="InformationRequest" access="readOnly">
        <description>
          The total number of INFORMATION-REQUEST messages received by the
          server, as defined in {{bibref|RFC8415|Dynamic Host Configuration
          Protocol for IPv6}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="RelayForward" access="readOnly">
        <description>
          The total number of RELAY-FORW messages received by the server, as
          defined in {{bibref|RFC8415|Dynamic Host Configuration Protocol for
          IPv6}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="RelayReply" access="readOnly">
        <description>
          The total number of RELAY-REPL messages sent by the server, as
          defined in {{bibref|RFC8415|Dynamic Host Configuration Protocol for
          IPv6}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="DiscardedPackets" access="readOnly">
        <description>
          The total number of DHCP packets discarded by the server. Packets can
          be discarded due to illegal message format and content, incorrect
          received bytes, etc.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="TransmitFailure" access="readOnly">
        <description>
          The total number of DHCP messages that failed to transmit.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="Reset" access="readWrite">
        <description>
          Set this to {{true}} to reset all this object's statistics counters
          to zero.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IEEE8021x." access="readOnly" minEntries="1"
        maxEntries="1" version="2.0">
      <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"
        version="2.0">
      <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 functional="true">
        <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" version="2.0">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </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"
          dmr:previousParameter="AuthenticationSuccessPolicy">
        <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 command="true">
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Disconnect" access="readWrite">
        <description>
          When set to {{true}}, the device MUST disconnect (forced
          unauthentication) the resource.

          The device MUST initiate the disconnect after completion of the
          current CWMP session. The device MAY delay re-authentication of the
          resource in order to avoid interruption of a user service such as an
          ongoing voice call.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IEEE8021x.Supplicant.{i}.Stats." access="readOnly"
        minEntries="1" maxEntries="1" version="2.0">
      <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>

      <parameter name="SuccessCount" access="readOnly" version="2.18">
        <description>
          Count of the number of successful authentications from the
          perspective of this supplicant.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="FailureCount" access="readOnly" version="2.18">
        <description>
          Count of the number of failed authentications from the perspective of
          this supplicant.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="Reset" access="readWrite" version="2.18">
        <description>
          Set this to {{true}} to reset this object's statistics counters to
          zero.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IEEE8021x.Supplicant.{i}.EAPMD5." access="readOnly"
        minEntries="1" maxEntries="1" version="2.0">
      <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 secured="true">
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IEEE8021x.Supplicant.{i}.EAPTLS." access="readOnly"
        minEntries="1" maxEntries="1" version="2.0">
      <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>

      <parameter name="Certificate" access="readWrite" version="2.19">
        <description>
          Specifies the client certificate that must be presented to the remote
          server for mutual authentication. This certificate is used to
          authenticate the client by the remote server, ensuring that the
          remote server is communicating with a trusted client. The client
          certificate must be issued by a trusted Certificate Authority (CA)
          and should match the client's private key. This parameter is
          applicable only when a TLS session is being used.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent=".Security.Certificate."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="CABundle" access="readWrite" version="2.19">
        <description>
          Specifies the group of CA certificate(s) that the client must use to
          validate the certificate presented by the remote server. These CA
          certificates form a trust chain that the server certificate must
          match, ensuring that only servers with trusted certificates can
          establish a connection. This parameter supports multiple CA
          certificates to accommodate different server certificate issuers.
          This parameter is applicable only when a TLS session is being used.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent=".Security.CABundle."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Users." access="readOnly" minEntries="1"
        maxEntries="1" version="2.0">
      <description>
        Users object that contains the {{object|User}}, {{object|Group}}, and
        {{object|Role}} tables.
      </description>

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

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

      <parameter name="RoleNumberOfEntries" access="readOnly" version="2.15">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SupportedShellNumberOfEntries" access="readOnly"
          version="2.15">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SupportedCapabilities" access="readOnly" version="2.18">
        <description>
          This parameter contains the supported capabilities on this system.
          These are privileges that allow precise control for individual
          processes. Essentially, capabilities can be assigned to processes
          giving them necessary permissions to perform certain functions.
          Please refer to Linux man page on capabilities ("capabilities(7) -
          Linux manual page").
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="CAP_AUDIT_CONTROL"/>
            <enumeration value="CAP_AUDIT_READ"/>
            <enumeration value="CAP_AUDIT_WRITE"/>
            <enumeration value="CAP_BLOCK_SUSPEND"/>
            <enumeration value="CAP_BPF"/>
            <enumeration value="CAP_CHECKPOINT_RESTORE"/>
            <enumeration value="CAP_CHOWN"/>
            <enumeration value="CAP_DAC_OVERRIDE"/>
            <enumeration value="CAP_DAC_READ_SEARCH"/>
            <enumeration value="CAP_FOWNER"/>
            <enumeration value="CAP_FSETID"/>
            <enumeration value="CAP_IPC_LOCK"/>
            <enumeration value="CAP_IPC_OWNER"/>
            <enumeration value="CAP_KILL"/>
            <enumeration value="CAP_LEASE"/>
            <enumeration value="CAP_LINUX_IMMUTABLE"/>
            <enumeration value="CAP_MAC_ADMIN"/>
            <enumeration value="CAP_MAC_OVERRIDE"/>
            <enumeration value="CAP_MKNOD"/>
            <enumeration value="CAP_NET_ADMIN"/>
            <enumeration value="CAP_NET_BIND_SERVICE"/>
            <enumeration value="CAP_NET_BROADCAST"/>
            <enumeration value="CAP_NET_RAW"/>
            <enumeration value="CAP_PERFMON"/>
            <enumeration value="CAP_SETGID"/>
            <enumeration value="CAP_SETFCAP"/>
            <enumeration value="CAP_SETPCAP"/>
            <enumeration value="CAP_SETUID"/>
            <enumeration value="CAP_SYS_ADMIN"/>
            <enumeration value="CAP_SYS_BOOT"/>
            <enumeration value="CAP_SYS_CHROOT"/>
            <enumeration value="CAP_SYS_MODULE"/>
            <enumeration value="CAP_SYS_NICE"/>
            <enumeration value="CAP_SYS_PACCT"/>
            <enumeration value="CAP_SYS_PTRACE"/>
            <enumeration value="CAP_SYS_RAWIO"/>
            <enumeration value="CAP_SYS_RESOURCE"/>
            <enumeration value="CAP_SYS_TIME"/>
            <enumeration value="CAP_SYS_TTY_CONFIG"/>
            <enumeration value="CAP_SYSLOG"/>
            <enumeration value="CAP_WAKE_ALARM"/>
          </string>
        </syntax>
      </parameter>
    </object>

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

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

      <parameter name="Enable" access="readWrite">
        <description>
          Enables/disables this user object instance.

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

      <parameter name="UserID" access="readWrite" version="2.15">
        <description>
          Unique Identifier of the user. Depending on the implementation this
          can be the unique identifier assigned by the underlying system.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="RemoteAccessCapable" access="readWrite"
          status="deleted">
        <description>
          Allows this user to remotely access the UserInterface via the
          mechanism defined in {{object|##.UserInterface.HTTPAccess}}

          {{deprecated|2.16|due to the introduction of
          {{object|.UserInterface.HTTPAccess.{i}.}} and
          {{param|RoleParticipation}}}}

          {{obsoleted|2.18}}

          {{deleted|2.19}}
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

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

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

      <parameter name="GroupParticipation" access="readWrite">
        <description>
          The Groups of which this User is a member.
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string>
            <pathRef refType="weak" targetParent="#.Group." targetType="row"/>
          </string>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>

      <parameter name="RoleParticipation" access="readWrite">
        <description>
          The Roles which are assigned to this User.
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string>
            <pathRef refType="weak" targetParent="#.Role." targetType="row"/>
          </string>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>

      <parameter name="StaticUser" access="readOnly">
        <description>
          A static user is a fixed user that is always available in the system.
          When set to {{true}}, the user cannot be removed.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Language" access="readWrite">
        <description>
          String describing the default language for the local configuration
          interface, specified according to {{bibref|RFC3066}}.

          If {{empty}}, {{param|##.UserInterface.CurrentLanguage}} is used.
        </description>
        <syntax>
          <string>
            <size maxLength="16"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Shell" access="readWrite">
        <description>
          {{null}} means Shell access disabled.
        </description>
        <syntax>
          <string>
            <pathRef refType="weak" targetParent="#.SupportedShell."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Users.CheckCredentialsDiagnostics." access="readOnly"
        minEntries="1" maxEntries="1"
        dmr:previousObject="Device.Users.User.{i}." version="2.15">
      <description>
        This object is to provide diagnostic information to check whether
        {{param|Username}} and {{param|Password}} are valid for allowing access
        to the user interface on the device. If not valid, then an indication
        of why they are not valid is output.
      </description>

      <parameter name="DiagnosticsState" access="readWrite">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="DiagnosticsState">
            <enumeration value="None" access="readOnly"/>
            <enumeration value="Requested"/>
            <enumeration value="Canceled" optional="true"/>
            <enumeration value="Complete" access="readOnly"/>
            <enumeration value="Error" access="readOnly" optional="true"/>
            <enumeration value="Credentials_Good" access="readOnly"
                optional="true"/>
            <enumeration value="Credentials_Bad_Username_Not_Supported"
                access="readOnly" optional="true"/>
            <enumeration value="Credentials_Bad_Password_Incorrect"
                access="readOnly" optional="true"/>
            <enumeration value="Credentials_Missing" access="readOnly"
                optional="true"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="Username" access="readWrite">
        <description>
          The user name for logging in to the user interface on the device.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="Password" access="readWrite">
        <description>
          The password for logging in to the user interface on the device.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Users.Group.{i}." access="readWrite"
        numEntriesParameter="GroupNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.15">
      <description>
        This object contains parameters relating to the characteristics of a
        user group.
      </description>
      <uniqueKey functional="true">
        <parameter ref="Groupname"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="GroupID"/>
      </uniqueKey>

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

      <parameter name="Enable" access="readWrite">
        <description>
          Enables/disables this group object instance.

          If any User which belongs to a Group which becomes disabled is
          currently accessing the device then the effect on that User should be
          as if the Group were removed from that User's GroupParticipation
          list.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="GroupID" access="readWrite" version="2.15">
        <description>
          Unique Identifier of the group. Depending on the implementation this
          can be the unique identifier assigned by the underlying system.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

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

      <parameter name="RoleParticipation" access="readWrite">
        <description>
          These Roles are assigned to any User which is member of this Group,
          for so long as they remain a member of the Group.
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string>
            <pathRef refType="weak" targetParent="#.Role." targetType="row"/>
          </string>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>

      <parameter name="StaticGroup" access="readOnly">
        <description>
          A static group is a fixed group that is always available in the
          system. When set to {{true}}, the group cannot be removed.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Users.SupportedShell.{i}." access="readWrite"
        enableParameter="Enable"
        numEntriesParameter="SupportedShellNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.15">
      <description>
        This table provides a list of user accessible shells which can be used
        as a reference in {{param|#.User.{i}.Shell}}
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="Name"/>
      </uniqueKey>

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

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

      <parameter name="Name" access="readOnly">
        <description>
          Name of the Shell
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Users.Role.{i}." access="readWrite"
        numEntriesParameter="RoleNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.15">
      <description>
        This object contains parameters relating to the role characteristics.
      </description>
      <uniqueKey functional="true">
        <parameter ref="RoleName"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="RoleID"/>
      </uniqueKey>

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

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

      <parameter name="RoleID" access="readWrite">
        <description>
          Unique Identifier of the role. Depending on the implementation this
          can be the unique identifier assigned by the underlying system.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

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

      <parameter name="StaticRole" access="readOnly">
        <description>
          A static role is a fixed role that is always available in the system.
          When set to {{true}}, the role cannot be removed.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="RequiredCapabilities" access="readWrite" version="2.18">
        <description>
          Capabilities that have been assigned to this {{object}}.
        </description>
        <syntax>
          <list/>
          <string>
            <enumerationRef targetParam=".Users.SupportedCapabilities"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.SmartCardReaders." access="readOnly" minEntries="1"
        maxEntries="1" version="2.0">
      <description>
        SmartCardReaders object that contains the {{object|SmartCardReader}}
        table.
      </description>

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

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

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

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

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

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

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

      <parameter name="ResetTime" access="readOnly">
        <description>
          The time at which this SmartCard Reader was reset.

          Reset can be caused by:

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

          * {{template|Reset}}.

          * An internal reset of the SmartCard Reader (including a reboot of
            the device).

          Unknown Time value indicates that this SmartCard Reader has never
          been reset, which can only happen if it has never been enabled.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="DecryptionFailedCounter" access="readOnly"
          activeNotify="canDeny">
        <description>
          Counter incremented once each time decryption cannot be carried out.

          This counter relates to the smart card reader, not to the smart card
          itself, i.e. it is reset when the {{template|Reset}} and not when a
          Smart Card is inserted or removed.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="DecryptionFailedNoKeyCounter" access="readOnly"
          activeNotify="canDeny">
        <description>
          Counter incremented once each time the key is not available to
          decrypt it. This is a subset of the more general
          {{param|DecryptionFailedCounter}} within the same object and thus
          will always be less than that parameter.

          This counter relates to the smart card reader, not to the smart card
          itself, i.e. it is reset when the {{template|Reset}} and not when a
          Smart Card is inserted or removed.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

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

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

      <parameter name="Type" access="readOnly">
        <description>
          Smart Card Type. {{enum}}

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

      <parameter name="Application" access="readOnly">
        <description>
          {{list}} Indicates Smart Card Application(s). {{param}} is only
          relevant when {{param|Type}} has a value of UICC, otherwise it is
          {{empty}}. {{enum}}

          Vendors can extend the enumerated values with vendor specific
          extensions, in which case the rules outlined in
          {{bibref|TR-106|Section 3.3}} MUST be adhered to.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="SIM"/>
            <enumeration value="USIM"/>
            <enumeration value="ISIM"/>
          </string>
        </syntax>
      </parameter>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      <parameter name="UPnPArchitecture" access="readOnly">
        <description>
          Numeric value indicating the major version of the supported UPnP
          architecture.

          If UPnP 1.1 is supported the value is 1. If UPnP 2.0 is supported the
          value is 2.

          A value of 0 indicates no UPnP support.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="UPnPArchitectureMinorVer" access="readOnly">
        <description>
          Numeric value indicating the minor version of the supported UPnP
          architecture.

          If UPnP 1.1 is supported the value is 1. If UPnP 2.0 is supported the
          value is 0.

          If {{param|UPnPArchitecture}} is 0 then this parameter SHOULD be
          ignored.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="UPnPMediaServer" access="readOnly">
        <description>
          Numeric value indicating the supported revision for UPnP Media
          Server.

          A value of 0 indicates no support.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="UPnPMediaRenderer" access="readOnly">
        <description>
          Numeric value indicating the supported revision for UPnP Media
          Renderer.

          A value of 0 indicates no support.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="UPnPWLANAccessPoint" access="readOnly">
        <description>
          Numeric value indicating the supported revision for UPnP Wireless
          Access Point.

          A value of 0 indicates no support.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="UPnPBasicDevice" access="readOnly">
        <description>
          Numeric value indicating the supported revision for UPnP Basic
          Device.

          A value of 0 indicates no support.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="UPnPQoSDevice" access="readOnly">
        <description>
          Numeric value indicating the supported revision for UPnP Qos Device.

          A value of 0 indicates no support.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="UPnPQoSPolicyHolder" access="readOnly">
        <description>
          Numeric value indicating the supported revision for UPnP Qos Policy
          Holder.

          A value of 0 indicates no support.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="UPnPIGD" access="readOnly">
        <description>
          Numeric value indicating the supported revision for UPnP IGD.

          A value of 0 indicates no support.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="UPnPDMBasicMgmt" access="readOnly">
        <description>
          Numeric value indicating the supported revision for UPnP-DM Basic
          Management.

          A value of 0 indicates no support.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="UPnPDMConfigurationMgmt" access="readOnly">
        <description>
          Numeric value indicating the supported revision for UPnP-DM
          Configuration Management.

          A value of 0 indicates no support.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="UPnPDMSoftwareMgmt" access="readOnly">
        <description>
          Numeric value indicating the supported revision for UPnP-DM Software
          Management.

          A value of 0 indicates no support.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.UPnP.Discovery." access="readOnly" minEntries="1"
        maxEntries="1" version="2.0">
      <description>
        UPnP {{bibref|UPnP-DAv1}} SSDP discovered root devices, embedded
        devices and embedded services.

        The CPE MAY, but need not, retain some or all of the information in
        this object across reboots.
      </description>

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

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

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

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

      <parameter name="Status" access="readOnly">
        <description>
          The status of the UPnP root device. {{enum}}

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

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

          : ''02c29d2a-dbfd-2d91-99c9-306d537e9856''

          {{pattern}}
        </description>
        <syntax>
          <string>
            <size maxLength="36"/>
            <pattern
                value="[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}"/>
          </string>
        </syntax>
      </parameter>

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

          : ''uuid:device-UUID::urn:domain-name:device:deviceType:v''

          SSDP is an unreliable protocol and it is possible that no discovery
          message containing the USN header of the above form was ever
          received. If so, one of the other two forms MAY be used:

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

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

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

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

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

          : ''OS/version UPnP/udaversion product/version''

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

      <parameter name="Host" access="readOnly">
        <description>
          Indicates the full path names of all Host table entries, whether
          active or inactive, that correspond to this UPnP root device.
        </description>
        <syntax>
          <list/>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="###.Hosts.Host."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

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

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

      <parameter name="Status" access="readOnly">
        <description>
          The status of the UPnP embedded device. {{enum}}

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

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

          : ''02c29d2a-dbfd-2d91-99c9-306d537e9856''

          {{pattern}}
        </description>
        <syntax>
          <string>
            <size maxLength="36"/>
            <pattern
                value="[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}"/>
          </string>
        </syntax>
      </parameter>

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

          : ''uuid:device-UUID::urn:domain-name:device:deviceType:v''

          SSDP is an unreliable protocol and it is possible that no discovery
          message containing the USN header of the above form was ever
          received. If so, the other form MAY be used:

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

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

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

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

          : ''OS/version UPnP/udaversion product/version''

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

      <parameter name="Host" access="readOnly">
        <description>
          Indicates the full path names of all Host table entries, whether
          active or inactive, that correspond to this UPnP embedded device.
        </description>
        <syntax>
          <list maxItems="1024"/>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="###.Hosts.Host."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

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

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

      <parameter name="Status" access="readOnly">
        <description>
          The status of the UPnP embedded service. {{enum}}

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

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

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

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

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

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

          : ''OS/version UPnP/udaversion product/version''

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

      <parameter name="Host" access="readOnly">
        <description>
          Indicates the full path names of all Host table entries, whether
          active or inactive, that correspond to this UPnP embedded service.
        </description>
        <syntax>
          <list maxItems="1024"/>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="###.Hosts.Host."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

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

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

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

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

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

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

    <object name="Device.UPnP.Description.DeviceDescription.{i}."
        access="readOnly"
        numEntriesParameter="DeviceDescriptionNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.6">
      <description>
        This table contains information read from the Device Description
        Document of discovered root devices.

        The CPE MAY, but need not, retain some or all of the information in
        this table after the associated SSDP advertisement (objects in the
        UPnP.Discovery. object tables) expires.

        In case the SSDP advertisement expires and the CPE deletes the related
        instances from the tables in UPnP.Discovery., the reference to such
        instances MUST be set to the empty string.
      </description>
      <uniqueKey functional="true">
        <parameter ref="URLBase"/>
      </uniqueKey>

      <parameter name="URLBase" access="readOnly">
        <description>
          The value extracted from the URLBase element in the Device
          Description Document of the discovered root device. If the URLBase
          element in the root device's Device Description Document is empty or
          absent, the {{datatype}} from which the device description was
          retrieved (e.g. the LOCATION from the SSDP message) is utilized as
          the URLBase.

          Note: the URLBase element is not recommended by {{bibref|UPnP-DAv1}}
          and is not permitted by {{bibref|UPnP-DAv11}}, so the value of
          {{param}} will usually be the URL from which the device description
          was retrieved.
        </description>
        <syntax>
          <dataType ref="URL"/>
        </syntax>
      </parameter>

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

      <parameter name="Host" access="readOnly">
        <description>
          Includes the Host table entries associated with the root device from
          which the device description was retrieved.
        </description>
        <syntax>
          <list maxItems="1024"/>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="###.Hosts.Host."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>
    </object>

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

      <parameter name="UDN" access="readOnly">
        <description>
          Unique Device Name of this device represented as a UUID for the
          device.

          This value is extracted from the UDN element in the Device
          Description Document with the leading uuid: removed.
        </description>
        <syntax>
          <dataType ref="UUID"/>
        </syntax>
      </parameter>

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

      <parameter name="DiscoveryDevice" access="readOnly">
        <description>
          {{reference|a {{object|##.Discovery.RootDevice}} table entry (if this
          is a root device) or a {{object|##.Discovery.Device}} table entry (if
          this is an embedded device)}}

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

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

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

      <parameter name="DeviceCategory" access="readOnly" version="2.8">
        <description>
          Each list item is the value of an element in the Device Description
          Document for this {{object}} that indicates a device category (e.g.
          "AV_TV" and "AV_Recorder"), or the value is {{empty}} if no such
          element is provided by the device.

          Note: It is assumed that the ''htip:X_DeviceCategory'' Device
          Description Document element is used for HTIP (Home-network Topology
          Identifying Protocol) {{bibref|JJ-300.00}} and {{bibref|G.9973}}.
          Standard HTIP device categories are defined in {{bibref|JJ-300.01}}.
          In this case, the maximum length of the list is 127 and of each item
          is 31, and any non-HTIP device categories SHOULD NOT conflict with
          standard HTIP device categories.

          Note: {{param}} is different from {{param|DeviceType}} and is
          included here for the purpose of HTIP usage.
        </description>
        <syntax>
          <list/>
          <string/>
        </syntax>
      </parameter>

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

      <parameter name="ManufacturerOUI" access="readOnly" version="2.8">
        <description>
          The value of an element in the Device Description Document for this
          {{object}} that indicates the manufacturer OUI if this value is
          provided by the device; or {{empty}} if this value is not provided by
          the device.

          {{pattern}}

          Note: It is assumed that the ''htip:X_ManufacturerOUI'' element is
          used for HTIP (Home-network Topology Identifying Protocol)
          {{bibref|JJ-300.00}} and {{bibref|G.9973}}.
        </description>
        <syntax>
          <string>
            <size minLength="0" maxLength="6"/>
            <pattern value=""/>
            <pattern value="[0-9A-F]{6}"/>
          </string>
        </syntax>
      </parameter>

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

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

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

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

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

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

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

      <parameter name="PresentationURL" access="readOnly">
        <description>
          The value of the UPnP presentationURL element in the Device
          Description Document for this {{object}} and MUST be an absolute URL.

          The way to obtain an absolute URL from the presentationURL element is
          specified in {{bibref|UPnP-DAv1}} and {{bibref|UPnP-DAv11}}.

          If the presentationURL is not provided by the device then this value
          MUST be {{empty}}.
        </description>
        <syntax>
          <dataType ref="URL"/>
        </syntax>
      </parameter>
    </object>

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

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

      <parameter name="ServiceId" access="readOnly">
        <description>
          The value of the UPnP serviceId element in the Device Description
          Document for this {{object}}, or {{empty}} if this value is not
          provided by the service.

          If the UPnP serviceId is not provided by the UPnP service, this
          {{object}} MUST be deleted.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ServiceDiscovery" access="readOnly">
        <description>
          {{reference|a {{object|##.Discovery.Service}} table entry}}

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

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

      <parameter name="SCPDURL" access="readOnly">
        <description>
          The value of the UPnP SCPDURL element in the Device Description
          Document for this {{object}} and MUST be an absolute {{datatype}}.

          The way to obtain an absolute URL from the SCPDURL element is
          specified in {{bibref|UPnP-DAv1}} and {{bibref|UPnP-DAv11}}.

          If the SCPDURL is not provided by the device then this value MUST be
          {{empty}}.
        </description>
        <syntax>
          <dataType ref="URL"/>
        </syntax>
      </parameter>

      <parameter name="ControlURL" access="readOnly">
        <description>
          The value of the UPnP controlURL element in the Device Description
          Document for this {{object}} and MUST be an absolute {{datatype}}.

          The way to obtain an absolute URL from the controlURL element is
          specified in {{bibref|UPnP-DAv1}} and {{bibref|UPnP-DAv11}}.

          If the controlURL is not provided by the device then this value MUST
          be {{empty}}
        </description>
        <syntax>
          <dataType ref="URL"/>
        </syntax>
      </parameter>

      <parameter name="EventSubURL" access="readOnly">
        <description>
          The value of the UPnP eventSubURL element in the Device Description
          Document for this {{object}} and MUST be an absolute {{datatype}}.

          The way to obtain an absolute URL from the eventSubURLL element is
          specified in {{bibref|UPnP-DAv1}} and {{bibref|UPnP-DAv11}}.

          If the eventSubURL is not provided by the device then this value MUST
          be {{empty}}
        </description>
        <syntax>
          <dataType ref="URL"/>
        </syntax>
      </parameter>
    </object>

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

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

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

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

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

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

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

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

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

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

    <object name="Device.Firewall." access="readOnly" minEntries="1"
        maxEntries="1" version="2.0">
      <description>
        Firewall configuration object. The {{param|Config}} parameter enables
        and disables the Firewall, and can select either a predefined
        configuration ({{enum|High|Config}} or {{enum|Low|Config}}) or an
        explicitly-defined {{enum|Advanced|Config}} configuration.

        For an {{enum|Advanced|Config}} configuration, {{param|AdvancedLevel}}
        controls the currently active Firewall Level, and the Firewall Levels
        are defined in the {{object|Level}}, {{object|Chain}} and
        {{object|Chain.{i}.Rule}} tables.

        For an {{enum|Policy|Config}} configuration, {{param|PolicyLevel}}
        controls the currently active Firewall Level, and the Firewall Levels
        are defined in the {{object|Policy}}, {{object|Level}},
        {{object|Chain}} and {{object|Chain.{i}.Rule}} tables.

        The Firewall rules modeled by {{object|Chain}}, {{object|DMZ}} and
        {{object|Pinhole}} operate only on the forwarding path. This means that
        they affect only routed traffic, and do not affect traffic that is
        destined for or generated by the device itself.

        Traffic destined for or generated by the device itself can use the
        {{object|Service}} object to model the appropriate Firewall rules.

        Note that any {{object|#.NAT}} processing on the ingress packet occurs
        before Firewall rules are applied so, for example, the Firewall rules
        will see the translated destination IP address and port in a downstream
        packet that has passed through the NAT.

        See {{bibref|TR-181i2|Appendix VIII}} for an example
        {{enum|Advanced|Config}} configuration.
      </description>

      <parameter name="Enable" access="readWrite" version="2.2">
        <description>
          Enables or disables the Firewall.

          Firewalls often implement additional Denial of Service and other
          vulnerability protections, such as those described in
          {{bibref|ICSA-Baseline}}. If a {{enum|Stateful|Type}} Firewall is
          enabled, then it is assumed that all implemented stateful protections
          are enabled, unless they are overridden by some other part of the
          data model.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Config" access="readWrite">
        <description>
          How this firewall is configured. {{enum}}

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

                {{obsoleted|2.14|because it is the same as setting
                {{param|Enable}} to {{false}}}}

                {{deleted|2.16}}
              </description>
            </enumeration>
            <enumeration value="Advanced" optional="true">
              <description>
                Advanced firewall configuration applies, as specified by
                {{param|AdvancedLevel}}.
              </description>
            </enumeration>
            <enumeration value="Policy" optional="true" version="2.16">
              <description>
                Policy firewall configuration applies, as specified by
                {{param|PolicyLevel}}.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="AdvancedLevel" access="readWrite" version="2.2">
        <description>
          Selects the currently active Firewall Level.

          {{param}} only applies when {{param|Config}} is
          {{enum|Advanced|Config}}.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="Level." targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="PolicyLevel" access="readWrite" version="2.16">
        <description>
          Selects the currently active Firewall Policy Level.

          {{param}} only applies when {{param|Config}} is
          {{enum|Policy|Config}}.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="Level." targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Type" access="readOnly" version="2.2">
        <description>
          Firewall Type. {{enum}}

          A {{enum|Stateless}} Firewall treats each packet individually and
          thus has no concept of sessions. Therefore a {{enum|Stateless}}
          Firewall cannot distinguish between unsolicited downstream traffic
          and downstream traffic in response to outbound messages. This means
          that it has to accept all incoming downstream traffic. Furthermore,
          because a {{enum|Stateless}} Firewall treats each packet
          individually, it does not provide any DoS or vulnerability
          protections.

          A {{enum|Stateful}} Firewall maintains state about previous packets
          and thus supports sessions. Therefore a {{enum|Stateful}} Firewall
          can distinguish between solicited and unsolicited downstream traffic.
          In a {{enum|Stateful}} Firewall, explicitly configured rules only
          apply to unsolicited traffic, and can not cause packets received in
          response to an upstream request to be dropped. Furthermore, because a
          {{enum|Stateful}} Firewall maintains state, it can provide DoS and
          vulnerability protections.

          A device that has a {{enum|Stateless}} Firewall depends on the NAT to
          provide protection against unsolicited downstream IPv4 traffic. This
          is because, as noted above, a {{enum|Stateless}} Firewall has to be
          configured to accept all incoming downstream traffic. For IPv6 there
          is no NAT, so a {{enum|Stateless}} Firewall can not provide simple
          security protections against unsolicited downstream IPv6 traffic.
        </description>
        <syntax>
          <string>
            <enumeration value="Stateless">
              <description>
                The Firewall only implements stateless packet inspection.
              </description>
            </enumeration>
            <enumeration value="Stateful">
              <description>
                The Firewall implements stateful packet inspection.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

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

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

      <parameter name="LevelNumberOfEntries" access="readOnly" version="2.2">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ChainNumberOfEntries" access="readOnly" version="2.2">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="DMZNumberOfEntries" access="readOnly" version="2.16">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

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

      <parameter name="PinholeNumberOfEntries" access="readOnly"
          version="2.16">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PolicyNumberOfEntries" access="readOnly" version="2.16">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="InterfaceSettingNumberOfEntries" access="readOnly"
          version="2.17">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SetNumberOfEntries" access="readOnly" version="2.18">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

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

    <object name="Device.Firewall.Level.{i}." access="readWrite"
        numEntriesParameter="LevelNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.2">
      <description>
        Firewall Level table. When an {{enum|Advanced|#.Config}} or
        {{enum|Policy|#.Config}} configuration is selected,
        {{param|#.AdvancedLevel}} or {{param|#.PolicyLevel}} selects the
        currently active entry in this table. Each {{object}} table entry
        references the {{object|#.Chain}} that contains the rules for this
        level.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Name"/>
      </uniqueKey>

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

      <parameter name="Name" access="readWrite">
        <description>
          Human-readable name associated with this {{object}} entry.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Description" access="readWrite">
        <description>
          Human-readable description associated with this {{object}} entry.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Order" access="readWrite">
        <description>
          {{datatype|expand}}

          This indicates the order of the {{object}} entry in the user
          interface display. Levels can be presented according to increasing or
          decreasing level of security.
        </description>
        <syntax>
          <dataType ref="Order"/>
        </syntax>
      </parameter>

      <parameter name="Policies" access="readWrite" version="2.16">
        <description>
          {{list}} {{reference|a {{object|#.Policy}}}} {{param}} only applies
          when {{param|#.Config}} is {{enum|Policy|#.Config}}.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Chain" access="readOnly">
        <description>
          The Chain containing Firewall Level Rules associated with this
          {{object}} entry.

          On creation of a new {{object}} entry, the device will automatically
          create a new {{object|#.Chain}} table entry that this {{param}}
          parameter will reference.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="#.Chain." targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="PortMappingEnabled" access="readWrite">
        <description>
          Indicates whether NAT port mapping is enabled or disabled when this
          is the active Level. For a {{enum|Stateless|#.Type}} Firewall this
          can be set to {{false}} to force any port mappings to be
          operationally disabled (for a {{enum|Stateful|#.Type}} Firewall this
          is not necessary because the same effect can be achieved via Firewall
          rules).

          This parameter affects all the interfaces on which NAT is enabled. It
          operationally enables or disables port mapping functionality and
          therefore does not affect the individual
          {{param|##.NAT.PortMapping.{i}.Enable}} settings. Note that the
          current NAT status and NAT port mapping status are indicated by the
          {{param|##.NAT.InterfaceSetting.{i}.Status}} parameter.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="true"/>
        </syntax>
      </parameter>

      <parameter name="DefaultPolicy" access="readWrite">
        <description>
          Default action for packets not matching any of the level rules.
          {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="Drop">
              <description>
                The firewall discards packets matching this rule.
              </description>
            </enumeration>
            <enumeration value="Accept">
              <description>
                The firewall forwards packets matching this rule.
              </description>
            </enumeration>
            <enumeration value="Reject" optional="true">
              <description>
                The firewall discards packets matching this rule, and sends an
                ICMP message to the originating host.
              </description>
            </enumeration>
          </string>
          <default type="object" value="Drop"/>
        </syntax>
      </parameter>

      <parameter name="DefaultLogPolicy" access="readWrite">
        <description>
          Enable or disable logging, in a
          {{object|##.DeviceInfo.VendorLogFile}}, of packets not matching any
          of the level rules.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Firewall.Policy.{i}." access="readWrite"
        numEntriesParameter="PolicyNumberOfEntries" minEntries="0"
        maxEntries="unbounded" dmr:previousObject="Device.Firewall.Level.{i}."
        version="2.16">
      <description>
        Firewall Policy table. When a {{enum|Policy|#.Config}} configuration is
        selected, {{param|#.PolicyLevel}} selects the currently active entry in
        this table. Each {{object}} table entry references the
        {{object|#.Chain}} that contains the rules for this policy.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the firewall policy.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The status of this {{object}} entry. {{enum}}

          The {{enum|Error_Misconfigured}} value indicates that a necessary
          configuration value is undefined or invalid.

          The {{enum|Error}} value MAY be used by the CPE to indicate a locally
          defined error condition.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Enabled"/>
            <enumeration value="Error_Misconfigured"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

      <parameter name="Chain" access="readWrite">
        <description>
          The Chain containing Firewall Rules associated with this {{object}}
          entry. This is applicable for traffic from the
          {{param|SourceInterface}} to the {{param|DestinationInterface}}.
          {{param}} only applies when {{param|TargetChain}} is
          {{enum|Chain|TargetChain}}.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="#.Chain." targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="TargetChain" access="readWrite">
        <description>
          Action to perform for traffic matching this {{object}} entry.
          {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="Drop">
              <description>
                The firewall discards packets matching this rule.
              </description>
            </enumeration>
            <enumeration value="Accept">
              <description>
                The firewall forwards packets matching this rule.
              </description>
            </enumeration>
            <enumeration value="Reject" optional="true">
              <description>
                The firewall discards packets matching this rule, and sends an
                ICMP message to the originating host.
              </description>
            </enumeration>
            <enumeration value="Chain" optional="true">
              <description>
                The rules in the chain referenced by the {{param|Chain}}
                parameter are matched.
              </description>
            </enumeration>
          </string>
          <default type="object" value="Drop"/>
        </syntax>
      </parameter>

      <parameter name="SourceInterface" access="readWrite">
        <description>
          This specifies the L3 source interface associated with the entry.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="##.IP.Interface."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DestinationInterface" access="readWrite">
        <description>
          This specifies the L3 destination interface associated with the
          entry.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="##.IP.Interface."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="IPVersion" access="readWrite" version="2.16">
        <description>
          Specifies the IP protocol version, following the definitions in
          {{bibref|IANA-ipversionnumbers}}. Valid values are: {{range}}.
        </description>
        <syntax>
          <int>
            <range minInclusive="4" maxInclusive="4">
              <description>
                IPv4
              </description>
            </range>
            <range minInclusive="6" maxInclusive="6">
              <description>
                IPv6
              </description>
            </range>
            <range minInclusive="-1" maxInclusive="-1">
              <description>
                No specific IP version is required
              </description>
            </range>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="ReverseChain" access="readWrite">
        <description>
          The Chain containing Firewall Rules associated with this {{object}}
          entry. This is applicable for traffic from the
          {{param|DestinationInterface}} to the {{param|SourceInterface}}.
          {{param}} only applies when {{param|ReverseTargetChain}} is
          {{enum|Chain|ReverseTargetChain}}.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="#.Chain." targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ReverseTargetChain" access="readWrite">
        <description>
          Action to perform for traffic matching this {{object}} entry.
        </description>
        <syntax>
          <string>
            <enumeration value="Drop">
              <description>
                The firewall discards packets matching this rule.
              </description>
            </enumeration>
            <enumeration value="Accept">
              <description>
                The firewall forwards packets matching this rule.
              </description>
            </enumeration>
            <enumeration value="Reject" optional="true">
              <description>
                The firewall discards packets matching this rule, and sends an
                ICMP message to the originating host.
              </description>
            </enumeration>
            <enumeration value="Chain" optional="true">
              <description>
                The rules in the chain referenced by the {{param|ReverseChain}}
                parameter are matched.
              </description>
            </enumeration>
          </string>
          <default type="object" value="Drop"/>
        </syntax>
      </parameter>

      <parameter name="Log" access="readWrite" version="2.19">
        <description>
          Enable or disable logging, in a {{object|.DeviceInfo.VendorLogFile}},
          of packets matching this {{object}}.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="LogRef" access="readWrite" version="2.19">
        <description>
          Specifies the logging rules for this {{object}} entry. The
          {{param|Log}} parameter MUST be set to {{true}} for this setting to
          take effect. When {{param|Log}} is {{true}} and {{param}} is
          {{empty}} or contains an invalid reference, the system MUST treat the
          configuration as an error and set {{param|Status}} to
          {{enum|Error_Misconfigured|Status}}.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetParent=".Firewall.Log."
                targetType="row"/>
          </string>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Firewall.Chain.{i}." access="readWrite"
        numEntriesParameter="ChainNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.2">
      <description>
        Firewall Chain table. Each entry contains an ordered list of
        {{object|Rule}} objects which can themselves reference other {{object}}
        instances. A hierarchy of rules can therefore be created.

        A given Firewall Chain's rules are all created by the same entity, as
        indicated by the {{param|Creator}} parameter.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Name"/>
      </uniqueKey>

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

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

      <parameter name="Name" access="readWrite">
        <description>
          Human-readable name associated with this {{object}} entry.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Creator" access="readOnly">
        <description>
          Creator of this {{object}} entry and of its {{object|Rule}}s.
          {{enum}}

          Note that this is the entity that originally created the {{object}}
          entry. The value of this parameter does not change if the {{object}}
          entry or one of its rules is subsequently changed by another entity.
        </description>
        <syntax>
          <string>
            <enumeration value="Defaults">
              <description>
                The {{object}} entry is present in the factory default
                configuration.
              </description>
            </enumeration>
            <enumeration value="PortMapping">
              <description>
                The {{object}} entry was created as a side-effect of a
                {{bibref|UPnP-IGD:1}} or {{bibref|TR-064}} port mapping.
              </description>
            </enumeration>
            <enumeration value="WANIPv6FirewallControl">
              <description>
                The {{object}} entry was created by {{bibref|UPnP-IGD:2}}
                WANIPv6FirewallControl.
              </description>
            </enumeration>
            <enumeration value="ACS">
              <description>
                The {{object}} entry was created by the Auto Configuration
                Server.
              </description>
            </enumeration>
            <enumeration value="UserInterface">
              <description>
                The {{object}} entry was created by device user interface or
                command line interface.
              </description>
            </enumeration>
            <enumeration value="Other">
              <description>
                The {{object}} entry was created by another entity.
              </description>
            </enumeration>
          </string>
          <default type="object" value="ACS"/>
        </syntax>
      </parameter>

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

    <object name="Device.Firewall.Chain.{i}.Rule.{i}." access="readWrite"
        numEntriesParameter="RuleNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.2">
      <description>
        Firewall Rule table. Each entry defines a Firewall packet selection
        rule. The {{param|Target}} parameter defines the action to perform for
        traffic matching this rule: the packet can be dropped, accepted,
        rejected or passed to another {{object|#}}.

        This table MUST NOT contain dynamic Firewall rules associated with
        {{enum|Stateful|##.Type}} Firewall sessions.

        All entries are created by the creator of the parent {{object|#}}, as
        indicated by its {{param|#.Creator}} parameter. {{object}} entries in a
        {{object|#}} with a {{param|#.Creator}} of {{enum|Defaults|#.Creator}},
        {{enum|ACS|#.Creator}}, {{enum|UserInterface|#.Creator}} or (maybe)
        {{enum|Other|#.Creator}} are referred to as ''Static'' {{object}}s.
        Whether or not a {{object}} in a {{object|#}} with {{param|#.Creator}}
        {{enum|Other|#.Creator}} is regarded as ''Static'' is a local matter to
        the CPE. Some of this object's parameter descriptions refer to whether
        a {{object}} is ''Static'' when specifying whether or not the parameter
        value can be modified.

        For enabled table entries, if {{param|SourceInterface}} is not a valid
        reference and {{param|SourceAllInterfaces}} is {{false}}, or if
        {{param|DestInterface}} is not a valid reference and
        {{param|DestAllInterfaces}} is {{false}}, then the table entry is
        inoperable and the CPE MUST set {{param|Status}} to
        {{enum|Error_Misconfigured|Status}}.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="Status" access="readOnly">
        <description>
          The status of this {{object}} entry. {{enum}}

          The {{enum|Error_Misconfigured}} value indicates that a necessary
          configuration value is undefined or invalid.

          The {{enum|Error}} value MAY be used by the CPE to indicate a locally
          defined error condition.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Enabled"/>
            <enumeration value="Error_Misconfigured"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

      <parameter name="Order" access="readWrite">
        <description>
          {{datatype|expand}}

          For each packet, the highest ordered entry that matches the rule
          criteria is applied. All lower order entries are ignored.
        </description>
        <syntax>
          <dataType ref="Order"/>
        </syntax>
      </parameter>

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

      <parameter name="Description" access="readWrite">
        <description>
          Human-readable description associated with this {{object}} entry.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Target" access="readWrite">
        <description>
          Action to perform for traffic matching this {{object}} entry.

          This parameter can only be modified if the {{object}} is ''Static''
          (as explained in the object description).
        </description>
        <syntax>
          <string>
            <enumeration value="Drop">
              <description>
                The firewall discards packets matching this rule.
              </description>
            </enumeration>
            <enumeration value="Accept">
              <description>
                The firewall forwards packets matching this rule.
              </description>
            </enumeration>
            <enumeration value="Reject" optional="true">
              <description>
                The firewall discards packets matching this rule, and sends an
                ICMP message to the originating host.
              </description>
            </enumeration>
            <enumeration value="Return" optional="true">
              <description>
                The firewall doesn't consider the remaining rules (if any) in
                the current chain.
              </description>
            </enumeration>
            <enumeration value="TargetChain" optional="true">
              <description>
                The rules in the chain referenced by the {{param|TargetChain}}
                parameter are matched.
              </description>
            </enumeration>
          </string>
          <default type="object" value="Drop"/>
        </syntax>
      </parameter>

      <parameter name="TargetChain" access="readWrite">
        <description>
          Specifies the chain to process when {{param|Target}} equals
          {{enum|TargetChain|Target}}. If there are no matching rules in the
          referenced chain, processing continues with the next rule in this
          chain (if any). In other words, {{enum|TargetChain|Target}} behaves
          like a subroutine call.

          {{empty}} indicates no {{param}} is specified.

          This parameter can only be modified if the {{object}} is ''Static''
          (as explained in the object description).
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="#" targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Log" access="readWrite">
        <description>
          Enable or disable logging, in a {{object|.DeviceInfo.VendorLogFile}},
          of packets matching this {{object}}.

          If the {{object}} is not ''Static'' (as explained in the object
          description), whether changes to this parameter persist across
          re-boot is a local matter to the CPE.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="LogRef" access="readWrite" version="2.19">
        <description>
          Specifies the logging rules for this {{object}} entry. The
          {{param|Log}} parameter MUST be set to {{true}} for this setting to
          take effect. When {{param|Log}} is {{true}} and {{param}} is
          {{empty}} or contains an invalid reference, the system MUST treat the
          configuration as an error and set {{param|Status}} to
          {{enum|Error_Misconfigured|Status}}.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetParent=".Firewall.Log."
                targetType="row"/>
          </string>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>

      <parameter name="CreationDate" access="readOnly">
        <description>
          Date and time when this {{object}} entry was created.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="ExpiryDate" access="readWrite">
        <description>
          The time at which this {{object}} entry will expire, or {{null}} if
          not known. For an infinite lifetime, the parameter value MUST be
          9999-12-31T23:59:59Z.

          The only value that MUST be supported is 9999-12-31T23:59:59Z (i.e.
          support for rules that expire is OPTIONAL).

          When a rule expires, the CPE MUST automatically terminate that rule
          and MUST automatically delete the corresponding {{object}} table
          entry.

          This parameter can only be modified if the {{object}} is ''Static''
          (as explained in the object description).
        </description>
        <syntax>
          <dateTime/>
          <default type="object" value="9999-12-31T23:59:59Z"/>
        </syntax>
      </parameter>

      <parameter name="SourceInterface" access="readWrite">
        <description>
          {{object}} criterion. {{reference}}

          This specifies the ingress interface associated with the entry. It
          MAY be a layer 1, 2 or 3 interface, however, the types of interfaces
          for which Rules can be instantiated is a local matter to the CPE.

          This parameter can only be modified if the {{object}} is ''Static''
          (as explained in the object description).
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SourceInterfaceExclude" access="readWrite">
        <description>
          If {{false}}, the rule matches only those packets that match the
          {{param|SourceInterface}} entry, if specified.

          If {{true}}, the rule matches all packets except those that match the
          {{param|SourceInterface}} entry, if specified.

          This parameter can only be modified if the {{object}} is ''Static''
          (as explained in the object description).
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="SourceAllInterfaces" access="readWrite">
        <description>
          {{object}} criterion. This specifies that all ingress interfaces are
          associated with the entry. If {{true}}, the values of
          {{param|SourceInterface}} and {{param|SourceInterfaceExclude}} are
          ignored since all ingress interfaces are indicated.

          This parameter can only be modified if the {{object}} is ''Static''
          (as explained in the object description).
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="DestInterface" access="readWrite">
        <description>
          {{object}} criterion. {{reference}}

          This specifies the egress interface associated with the entry. It MAY
          be a layer 1, 2 or 3 interface, however, the types of interfaces for
          which Rules can be instantiated is a local matter to the CPE.

          This parameter can only be modified if the {{object}} is ''Static''
          (as explained in the object description).
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DestInterfaceExclude" access="readWrite">
        <description>
          If {{false}}, the rule matches only those packets that match the
          {{param|DestInterface}} entry, if specified.

          If {{true}}, the rule matches all packets except those that match the
          {{param|DestInterface}} entry, if specified.

          This parameter can only be modified if the {{object}} is ''Static''
          (as explained in the object description).
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="DestAllInterfaces" access="readWrite">
        <description>
          {{object}} criterion. This specifies that all egress interfaces are
          associated with the entry. If {{true}}, the values of
          {{param|DestInterface}} and {{param|DestInterfaceExclude}} are
          ignored since all ingress interfaces are indicated.

          This parameter can only be modified if the {{object}} is ''Static''
          (as explained in the object description).
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="IPVersion" access="readWrite" version="2.2">
        <description>
          Specifies the IP protocol version, following the definitions in
          {{bibref|IANA-ipversionnumbers}}. Valid values are: {{range}}.

          This parameter can only be modified if the {{object}} is ''Static''
          (as explained in the object description).
        </description>
        <syntax>
          <int>
            <range minInclusive="4" maxInclusive="4">
              <description>
                IPv4
              </description>
            </range>
            <range minInclusive="6" maxInclusive="6">
              <description>
                IPv6
              </description>
            </range>
            <range minInclusive="-1" maxInclusive="-1">
              <description>
                No specific IP version is required
              </description>
            </range>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="DestIP" access="readWrite">
        <description>
          {{object}} criterion.

          Destination IP address. {{empty}} indicates this criterion is not
          used for matching.

          Note that Firewall rules are applied after any {{object|###.NAT}}
          processing, so if NAT is enabled on the source interface this is
          always the translated address.

          This parameter can only be modified if the {{object}} is ''Static''
          (as explained in the object description).
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DestMask" access="readWrite">
        <description>
          Destination IP address mask, represented as an IP routing prefix
          using CIDR notation [RFC4632]. The IP address part MUST be {{empty}}
          (and, if specified, MUST be ignored).
        </description>
        <syntax>
          <dataType ref="IPPrefix"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DestIPExclude" access="readWrite">
        <description>
          If {{false}}, the rule matches only those packets that match the
          (masked) {{param|DestIP}} entry, if specified.

          If {{true}}, the rule matches all packets except those that match the
          (masked) {{param|DestIP}} entry, if specified.

          This parameter can only be modified if the {{object}} is ''Static''
          (as explained in the object description).
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="DestMatchSet" access="readWrite" version="2.18">
        <description>
          {{object}} criterion.

          Destination Match Set, Matches packets if their destination is found
          in the designated {{object|##.Set.}} reference. {{empty}} indicates
          this criterion is not used for matching.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="##.Set." targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DestMatchSetExclude" access="readWrite" version="2.18">
        <description>
          {{object}} criterion.

          Destination Exclude Match Set, Matches packets if their destination
          is not found in the designated {{object|##.Set.}} reference.
          {{empty}} indicates this criterion is not used for matching.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="##.Set." targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SourceIP" access="readWrite">
        <description>
          {{object}} criterion.

          Source IP address. {{empty}} indicates this criterion is not used for
          matching.

          This parameter can only be modified if the {{object}} is ''Static''
          (as explained in the object description).
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SourceMask" access="readWrite">
        <description>
          Source IP address mask, represented as an IP routing prefix using
          CIDR notation [RFC4632]. The IP address part MUST be {{empty}} (and,
          if specified, MUST be ignored).
        </description>
        <syntax>
          <dataType ref="IPPrefix"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SourceIPExclude" access="readWrite">
        <description>
          If {{false}}, the rule matches only those packets that match the
          (masked) {{param|SourceIP}} entry, if specified.

          If {{true}}, the rule matches all packets except those that match the
          (masked) {{param|SourceIP}} entry, if specified.

          This parameter can only be modified if the {{object}} is ''Static''
          (as explained in the object description).
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="SourceMatchSet" access="readWrite" version="2.18">
        <description>
          {{object}} criterion.

          Source Match Set, Matches packets if their source is found in the
          designated {{object|##.Set.}} reference. {{empty}} indicates this
          criterion is not used for matching.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="##.Set." targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SourceMatchSetExclude" access="readWrite"
          version="2.18">
        <description>
          {{object}} criterion.

          Source Exclude Match Set, Matches packets if their source is not
          found in the designated {{object|##.Set.}} reference. {{empty}}
          indicates this criterion is not used for matching.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="##.Set." targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Protocol" access="readWrite">
        <description>
          {{object}} criterion.

          Protocol number. A value of -1 indicates this criterion is not used
          for matching.

          This parameter can only be modified if the {{object}} is ''Static''
          (as explained in the object description).
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="255"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="ProtocolExclude" access="readWrite">
        <description>
          If {{false}}, the rule matches only those packets that match the
          {{param|Protocol}} entry, if specified.

          If {{true}}, the rule matches all packets except those that match the
          {{param|Protocol}} entry, if specified.

          This parameter can only be modified if the {{object}} is ''Static''
          (as explained in the object description).
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="DestPort" access="readWrite">
        <description>
          {{object}} criterion.

          Destination port number. A value of -1 indicates this criterion is
          not used for matching.

          Note that Firewall rules are applied after any {{object|###.NAT}}
          processing, so if NAT is enabled on the source interface this is
          always the translated port number.

          This parameter can only be modified if the {{object}} is ''Static''
          (as explained in the object description).
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="65535"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="DestPortRangeMax" access="readWrite">
        <description>
          {{object}} criterion.

          If specified, indicates the {{object}} criterion is to include the
          port range from {{param|DestPort}} through {{param}} (inclusive). If
          specified, {{param}} MUST be greater than or equal to
          {{param|DestPort}}.

          A value of -1 indicates that no port range is specified.

          Note that Firewall rules are applied after any {{object|###.NAT}}
          processing, so if NAT is enabled on the source interface this is
          always the translated port number.

          This parameter can only be modified if the {{object}} is ''Static''
          (as explained in the object description).
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="65535"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="DestPortExclude" access="readWrite">
        <description>
          If {{false}}, the rule matches only those packets that match the
          {{param|DestPort}} entry (or port range), if specified.

          If {{true}}, the rule matches all packets except those that match the
          {{param|DestPort}} entry (or port range), if specified.

          This parameter can only be modified if the {{object}} is ''Static''
          (as explained in the object description).
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="SourcePort" access="readWrite">
        <description>
          {{object}} criterion.

          Source port number. A value of -1 indicates this criterion is not
          used for matching.

          This parameter can only be modified if the {{object}} is ''Static''
          (as explained in the object description).
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="65535"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="SourcePortRangeMax" access="readWrite">
        <description>
          {{object}} criterion.

          If specified, indicates the {{object}} criterion is to include the
          port range from {{param|SourcePort}} through {{param}} (inclusive).
          If specified, {{param}} MUST be greater than or equal to
          {{param|SourcePort}}.

          A value of -1 indicates that no port range is specified.

          This parameter can only be modified if the {{object}} is ''Static''
          (as explained in the object description).
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="65535"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="SourcePortExclude" access="readWrite">
        <description>
          If {{false}}, the rule matches only those packets that match the
          {{param|SourcePort}} entry (or port range), if specified.

          If {{true}}, the rule matches all packets except those that match the
          {{param|SourcePort}} entry (or port range), if specified.

          This parameter can only be modified if the {{object}} is ''Static''
          (as explained in the object description).
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="DSCP" access="readWrite">
        <description>
          {{object}} criterion.

          DiffServ codepoint (defined in {{bibref|RFC2474}}).

          If set to a Class Selector Codepoint (defined in {{bibref|RFC2474}}),
          all DSCP values that match the first 3 bits will be considered a
          valid match.

          A value of -1 indicates this criterion is not used for matching.

          This parameter can only be modified if the {{object}} is ''Static''
          (as explained in the object description).
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="63"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="DSCPExclude" access="readWrite">
        <description>
          If {{false}}, the rule matches only those packets that match the
          {{param|DSCP}} entry, if specified.

          If {{true}}, the rule matchess all packets except those that match
          the {{param|DSCP}} entry, if specified.

          This parameter can only be modified if the {{object}} is ''Static''
          (as explained in the object description).
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="ConnectionState" access="readWrite" version="2.16">
        <description>
          Matches only packets according to the following connection states.
          {{empty}} indicates this criterion is not used for matching.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="INVALID">
              <description>
                The received packet is not associated with an known connection
                and it may contain faulty data or headers.
              </description>
            </enumeration>
            <enumeration value="NEW">
              <description>
                The first received packet of a new not yet established
                connection.
              </description>
            </enumeration>
            <enumeration value="RELATED">
              <description>
                The received packet that is starting a new connection and is
                related to an already known and established connection.
              </description>
            </enumeration>
            <enumeration value="ESTABLISHED">
              <description>
                The received packet is part of an already established and known
                connection that has handled packets in both directions and is
                being considered fully valid.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="SourceMAC" access="readWrite" version="2.16">
        <description>
          Source MAC address. {{empty}} indicates this criterion is not used
          for matching.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SourceMACExclude" access="readWrite" version="2.16">
        <description>
          If {{false}}, the rule matches only those packets that match the
          {{param|SourceMAC}} entry, if specified.

          If {{true}}, the rule matches all packets except those that match the
          {{param|SourceMAC}} entry, if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Firewall.Pinhole.{i}." access="readWrite"
        numEntriesParameter="PinholeNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.16">
      <description>
        Firewall Pinhole object that is used for configuring pinholes. Pinholes
        are similar to port mapping entries but without the NAT support. The
        Pinhole table is used for allowing certain incoming traffic, on the
        {{param|Interface}}, to be routed to the internal network.

        For enabled table entries, if {{param|DestMACAddress}} and
        {{param|DestIP}} are {{empty}}, or if {{param|Interface}} is not a
        valid reference, then the table entry is inoperable and the device MUST
        set {{param|Status}} to {{enum|Error_Misconfigured|Status}}.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

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

      <parameter name="Status" access="readOnly">
        <description>
          The status of this {{object}} entry.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled">
              <description>
                Indicates that the pinhole is disabled.
              </description>
            </enumeration>
            <enumeration value="Enabled">
              <description>Indicates that the pinhole is enabled.</description>
            </enumeration>
            <enumeration value="Inactive" version="2.18">
              <description>
                Indicates that the pinhole is still enabled but has been
                temporarily deactivated due to the Schedules defined in
                {{param|ScheduleRef}}.
              </description>
            </enumeration>
            <enumeration value="Error_Misconfigured">
              <description>
                Indicates that a necessary configuration value is undefined or
                invalid.
              </description>
            </enumeration>
            <enumeration value="Error" optional="true">
              <description>
                MAY be used to define an error condition.
              </description>
            </enumeration>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

      <parameter name="Origin" access="readOnly">
        <description>
          Indicates the Origin of the {{object}} instance.

          Note: This parameter was changed to writeOnceReadOnly in the
          Device:2.18 version.

          Note: This parameter was reverted back to readOnly in the Device 2.19
          version.
        </description>
        <syntax>
          <string>
            <enumeration value="User">
              <description>
                Used for indicating that the pinhole rule was created by the
                end-user. For example through the web user interface.
              </description>
            </enumeration>
            <enumeration value="System">
              <description>
                Used for indicating that the pinhole rule was created by the
                system itself.
              </description>
            </enumeration>
            <enumeration value="UPnP" version="2.17">
              <description>
                Used for indicating that the pinhole rule was created by a
                device using UPnP-IGD.
              </description>
            </enumeration>
            <enumeration value="Controller">
              <description>
                Used for indicating that the pinhole rule was created by a
                Controller.
              </description>
            </enumeration>
          </string>
          <default type="object" value="Controller"/>
        </syntax>
      </parameter>

      <parameter name="Description" access="readWrite">
        <description>
          Human-readable description associated with this {{object}} entry.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite">
        <description>
          Specifies the incoming L3 interface to which this pinhole applies.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="##.IP.Interface."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="LeaseDuration" access="readWrite" version="2.17">
        <description>
          Determines the time to live, in {{units}}, of a pin hole lease, where
          "time to live" means the number of {{units}} before the pin hole
          expires.

          A value of 0 means the pin hole is static. Support for dynamic
          (non-static) pin hole is OPTIONAL. That is, the only value for
          {{param}} that MUST be supported is 0.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RemainingLeaseTime" access="readOnly"
          activeNotify="canDeny" version="2.17">
        <description>
          For a dynamic (non-static) pin hole, when this parameter is read, the
          value represents the time (in {{units}}) remaining on the pin hole
          lease. That is, for a dynamic pin hole, the value counts down toward
          0. When a dynamic pin hole lease expires, the device MUST
          automatically terminate that pin hole, and MUST automatically delete
          the corresponding {{object}} table entry.

          For a static pin hole, this parameter is irrelevant and should return
          ''0''.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SourcePort" access="readWrite">
        <description>
          Source port number of the incoming connection. A value of ''-1''
          indicates this criterion is not used for matching.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="65535"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="SourcePortRangeMax" access="readWrite" version="2.18">
        <description>
          If specified, indicates the {{object}} criterion is to include the
          port range from {{param|SourcePort}} through {{param}} (inclusive).
          If specified, {{param}} MUST be greater than or equal to
          {{param|SourcePort}}.

          A value of -1 indicates that no port range is specified.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="65535"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="DestPort" access="readWrite">
        <description>
          Destination port number. A value of ''-1'' indicates this criterion
          is not used for matching.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="65535"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="DestPortRangeMax" access="readWrite" version="2.18">
        <description>
          If specified, indicates the {{object}} criterion is to include the
          port range from {{param|DestPort}} through {{param}} (inclusive). If
          specified, {{param}} MUST be greater than or equal to
          {{param|DestPort}}.

          A value of -1 indicates that no port range is specified.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="65535"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="IPVersion" access="readWrite" version="2.16">
        <description>
          Specifies the IP protocol version, following the definitions in
          {{bibref|IANA-ipversionnumbers}}. Valid values are: {{range}}.
        </description>
        <syntax>
          <int>
            <range minInclusive="4" maxInclusive="4">
              <description>
                IPv4
              </description>
            </range>
            <range minInclusive="6" maxInclusive="6">
              <description>
                IPv6
              </description>
            </range>
            <range minInclusive="-1" maxInclusive="-1">
              <description>
                No specific IP version is required
              </description>
            </range>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="Protocol" access="readWrite">
        <description>
          Protocol number as specified in {{bibref|IANA-protocolnumbers}} For
          example:

          * ''6'' (TCP)

          * ''17'' (UDP)

          A value of ''-1'' indicates this criterion is not used for matching.
        </description>
        <syntax>
          <list/>
          <int>
            <range minInclusive="-1" maxInclusive="255"/>
          </int>
          <default type="object" value="[-1]"/>
        </syntax>
      </parameter>

      <parameter name="SourcePrefixes" access="readWrite">
        <description>
          Only allow incoming connections that match one or more of the source
          IP addresses or prefixes that are specified in {{param}} for the
          applied pinhole.
        </description>
        <syntax>
          <list/>
          <dataType ref="IPPrefix"/>
        </syntax>
      </parameter>

      <parameter name="DestIP" access="readWrite">
        <description>
          The IP address of a client on the internal network. Either {{param}}
          or {{param|DestMACAddress}} MUST be configured, it is not allowed to
          configure them both. {{empty}} indicates this criterion is not used
          for matching.
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
        </syntax>
      </parameter>

      <parameter name="DestMACAddress" access="readWrite">
        <description>
          The MAC address of a client on the internal network. Either {{param}}
          or {{param|DestIP}} MUST be configured, it is not allowed to
          configure them both. {{empty}} indicates this criterion is not used
          for matching.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="ScheduleRef" access="readWrite" version="2.18">
        <description>
          Each reference provides a schedule where time based access can be
          enabled. When {{param}} is {{empty}} the {{object}} is not scheduled,
          and the {{param|Enable}} defines the operational state.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetParent=".Schedules.Schedule."
                targetType="row"/>
          </string>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>

      <parameter name="Log" access="readWrite" version="2.19">
        <description>
          Enable or disable logging, in a {{object|.DeviceInfo.VendorLogFile}},
          of packets matching this {{object}}.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="LogRef" access="readWrite" version="2.19">
        <description>
          Specifies the logging rules for this {{object}} entry. The
          {{param|Log}} parameter MUST be set to {{true}} for this setting to
          take effect. When {{param|Log}} is {{true}} and {{param}} is
          {{empty}} or contains an invalid reference, the system MUST treat the
          configuration as an error and set {{param|Status}} to
          {{enum|Error_Misconfigured|Status}}.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetParent=".Firewall.Log."
                targetType="row"/>
          </string>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Firewall.DMZ.{i}." access="readWrite"
        numEntriesParameter="DMZNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.16">
      <description>
        Firewall DMZ object that is be used for configuring a demilitarized
        zone. A DMZ network is a separate network perimeter that protects the
        internal network from untrusted traffic. Typically the DMZ is located
        between two firewalls, the firewall of the internal network and the
        firewall responsible for handling untrusted traffic.

        The device MUST forward all received packets that matches the
        {{param|SourcePrefix}} criteria to the IP address that is specified in
        {{param|DestIP}}.

        For enabled table entries, if {{param|DestIP}} is {{empty}}, or if
        {{param|Interface}} is not a valid reference, then the table entry is
        inoperable and the device MUST set {{param|Status}} to
        {{enum|Error_Misconfigured|Status}}.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="DestIP"/>
        <parameter ref="SourcePrefix"/>
      </uniqueKey>

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

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the firewall DMZ instance.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The status of this {{object}} entry.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled">
              <description>
                Indicates that the DMZ entry is disabled.
              </description>
            </enumeration>
            <enumeration value="Enabled">
              <description>
                Indicates that the DMZ entry is enabled.
              </description>
            </enumeration>
            <enumeration value="Error_Misconfigured">
              <description>
                Indicates that a necessary configuration value is undefined or
                invalid.
              </description>
            </enumeration>
            <enumeration value="Error" optional="true">
              <description>
                MAY be used to define an error condition.
              </description>
            </enumeration>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

      <parameter name="Origin" access="readOnly">
        <description>
          Indicates who configured the {{object}} instance.

          Note: This parameter was changed to writeOnceReadOnly in the
          Device:2.18 version.

          Note: This parameter was reverted back to readOnly in the Device 2.19
          version.
        </description>
        <syntax>
          <string>
            <enumeration value="User">
              <description>
                Used for indicating that the DMZ rule was created by the
                end-user. For example through the web user interface.
              </description>
            </enumeration>
            <enumeration value="System">
              <description>
                Used for indicating that the DMZ rule was created by the system
                itself.
              </description>
            </enumeration>
            <enumeration value="Controller">
              <description>
                Used for indicating that the DMZ rule was created by a
                Controller,
              </description>
            </enumeration>
          </string>
          <default type="object" value="Controller"/>
        </syntax>
      </parameter>

      <parameter name="Description" access="readWrite">
        <description>
          Human-readable description associated with the entry.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite">
        <description>
          This specifies the incoming L3 interface to which the DMZ applies.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="##.IP.Interface."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="LeaseDuration" access="readWrite" version="2.17">
        <description>
          Determines the time to live, in {{units}}, of a DMZ rule, where "time
          to live" means the number of {{units}} before the DMZ rule expires.

          A value of 0 means the DMZ rule is static. Support for dynamic
          (non-static) DMZ rules is OPTIONAL. That is, the only value for
          {{param}} that MUST be supported is 0.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RemainingLeaseTime" access="readOnly"
          activeNotify="canDeny" version="2.17">
        <description>
          For a dynamic (non-static) DMZ rule, when this parameter is read, the
          value represents the time (in {{units}}) remaining on the DMZ rule
          lease. That is, for a dynamic DMZ rule, the value counts down toward
          0. When a dynamic DMZ rule lease expires, the device MUST
          automatically terminate that DMZ rule, and MUST automatically delete
          the corresponding {{object}} table entry.

          For a static DMZ rule, this parameter is irrelevant and should return
          ''0''.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="DestIP" access="readWrite">
        <description>
          The IPv4 address of a client in the DMZ network.
        </description>
        <syntax>
          <dataType ref="IPv4Address"/>
        </syntax>
      </parameter>

      <parameter name="SourcePrefix" access="readWrite">
        <description>
          Only allow incoming connections that match to the source IPv4 address
          or prefix that is specified in {{param}} for the applied DMZ
          instance. {{empty}} indicates this criterion is not used for
          matching.
        </description>
        <syntax>
          <dataType ref="IPv4Prefix"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Log" access="readWrite" version="2.19">
        <description>
          Enable or disable logging, in a {{object|.DeviceInfo.VendorLogFile}},
          of packets matching this {{object}}.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="LogRef" access="readWrite" version="2.19">
        <description>
          Specifies the logging rules for this {{object}} entry. The
          {{param|Log}} parameter MUST be set to {{true}} for this setting to
          take effect. When {{param|Log}} is {{true}} and {{param}} is
          {{empty}} or contains an invalid reference, the system MUST treat the
          configuration as an error and set {{param|Status}} to
          {{enum|Error_Misconfigured|Status}}.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetParent=".Firewall.Log."
                targetType="row"/>
          </string>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Firewall.Service.{i}." access="readWrite"
        numEntriesParameter="ServiceNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.16">
      <description>
        Firewall Service object that is used for configuring the firewall for
        opening a port/protocol for a local network service. For example:

        * ''SSH Server''

        * ''Web Server''

        For enabled table entries, if {{param|Interface}}, {{param|DestPort}}
        and {{param|Protocol}} are {{empty}}, or if {{param|Interface}} is not
        a valid reference, then the table entry is inoperable and the device
        MUST set {{param|Status}} to {{enum|Error_Misconfigured|Status}}.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="Interface"/>
        <parameter ref="DestPort"/>
        <parameter ref="Protocol"/>
        <parameter ref="SourcePrefixes"/>
      </uniqueKey>

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

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the firewall service instance.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The status of this {{object}} entry.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled">
              <description>
                Indicates that the Service entry is disabled.
              </description>
            </enumeration>
            <enumeration value="Enabled">
              <description>
                Indicates that the Service entry is enabled.
              </description>
            </enumeration>
            <enumeration value="Error_Misconfigured">
              <description>
                Indicates that a necessary configuration value is undefined or
                invalid.
              </description>
            </enumeration>
            <enumeration value="Error" optional="true">
              <description>
                MAY be used to define an error condition.
              </description>
            </enumeration>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite">
        <description>
          This specifies the incoming L3 interface to which the Service rule
          applies.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="##.IP.Interface."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DestPort" access="readWrite">
        <description>
          Destination port number. A value of ''-1'' indicates this criterion
          is not used for matching.
        </description>
        <syntax>
          <list/>
          <int>
            <range minInclusive="-1" maxInclusive="65535"/>
          </int>
          <default type="object" value="[-1]"/>
        </syntax>
      </parameter>

      <parameter name="IPVersion" access="readWrite" version="2.16">
        <description>
          Specifies the IP protocol version, following the definitions in
          {{bibref|IANA-ipversionnumbers}}. Valid values are: {{range}}.
        </description>
        <syntax>
          <int>
            <range minInclusive="4" maxInclusive="4">
              <description>
                IPv4
              </description>
            </range>
            <range minInclusive="6" maxInclusive="6">
              <description>
                IPv6
              </description>
            </range>
            <range minInclusive="-1" maxInclusive="-1">
              <description>
                No specific IP version is required
              </description>
            </range>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="Protocol" access="readWrite">
        <description>
          Protocol number as specified in {{bibref|IANA-protocolnumbers}} For
          example:

          * ''6'' (TCP)

          * ''17'' (UDP)

          A value of ''-1'' indicates this criterion is not used for matching.
        </description>
        <syntax>
          <list/>
          <int>
            <range minInclusive="-1" maxInclusive="255"/>
          </int>
          <default type="object" value="[-1]"/>
        </syntax>
      </parameter>

      <parameter name="ICMPType" access="readWrite">
        <description>
          ICMP type as specified in {{bibref|RFC792}} for 'IPv4' and
          {{bibref|RFC4443}} for 'IPv6'. Only applicable when
          {{param|Protocol}} contains ''1'' (ICMP IPv4) or ''58'' (ICMP IPv6).
          A value of ''-1'' indicates this criterion is not used for matching.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="255"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="SourcePrefixes" access="readWrite">
        <description>
          Only allow incoming connections that match one or more of the source
          IP addresses or prefixes that are specified in {{param}} for the
          applied service.
        </description>
        <syntax>
          <list/>
          <dataType ref="IPPrefix"/>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>

      <parameter name="Action" access="readWrite">
        <description>
          Action to perform for traffic matching this {{object}} entry.
        </description>
        <syntax>
          <string>
            <enumeration value="Drop">
              <description>
                The firewall discards packets matching this rule.
              </description>
            </enumeration>
            <enumeration value="Accept">
              <description>
                The firewall forwards packets matching this rule.
              </description>
            </enumeration>
            <enumeration value="Reject" optional="true">
              <description>
                The firewall discards packets matching this rule, and sends an
                ICMP message to the originating host.
              </description>
            </enumeration>
          </string>
          <default type="object" value="Accept"/>
        </syntax>
      </parameter>

      <parameter name="Log" access="readWrite" version="2.19">
        <description>
          Enable or disable logging, in a {{object|.DeviceInfo.VendorLogFile}},
          of packets matching this {{object}}.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="LogRef" access="readWrite" version="2.19">
        <description>
          Specifies the logging rules for this {{object}} entry. The
          {{param|Log}} parameter MUST be set to {{true}} for this setting to
          take effect. When {{param|Log}} is {{true}} and {{param}} is
          {{empty}} or contains an invalid reference, the system MUST treat the
          configuration as an error and set {{param|Status}} to
          {{enum|Error_Misconfigured|Status}}.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetParent=".Firewall.Log."
                targetType="row"/>
          </string>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Firewall.InterfaceSetting.{i}." access="readWrite"
        numEntriesParameter="InterfaceSettingNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded"
        version="2.17">
      <description>
        Firewall settings for an associated IP Interface.

        For enabled table entries, if {{param|Interface}} is not a valid
        reference then the table entry is inoperable and the device MUST set
        {{param|Status}} to {{enum|Error_Misconfigured|Status}}.

        Note: The {{object}} includes a unique key that is a strong reference.
        If a strongly referenced object is deleted, the device 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 device MUST set
        {{param|Status}} to {{enum|Error_Misconfigured|Status}} and disable the
        offending {{object}} row.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <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 device to indicate a
          locally defined error condition.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Enabled"/>
            <enumeration value="Error_Misconfigured"/>
            <enumeration value="Error"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

      <parameter name="Alias" access="readWrite" version="2.17">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </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>

      <parameter name="IPv4SpoofingProtection" access="readWrite">
        <description>
          Enables or disables the IPv4 spoofing protection.

          Spoofing protection prevents LAN devices from sending packets with a
          wrong source IP address.

          A number of DDoS attacks are known to modify the source IP address of
          packets to initiate a DDoS attack. Spoofing protection checks if the
          source IP address of packets initiated in the LAN belongs to the LAN
          interface Address range, otherwise the packet will be dropped early
          in the network stack.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="IPv6SpoofingProtection" access="readWrite">
        <description>
          Enables or disables the IPv6 spoofing protection.

          Spoofing protection prevents LAN devices from sending packets with a
          wrong source IP address.

          A number of DDoS attacks are known to modify the source IP address of
          packets to initiate a DDoS attack. Spoofing protection checks if the
          source IP address of packets initiated in the LAN belongs to the LAN
          interface Address range, otherwise the packet will be dropped early
          in the network stack.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="IPv4AcceptICMPEchoRequest" access="readWrite">
        <description>
          When {{true}} the 'ICMPv4 echo request' packet must be answered with
          an 'ICMPv4 echo reply'. When {{false}} the 'ICMPv4 echo request'
          packet must be dropped.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="IPv6AcceptICMPEchoRequest" access="readWrite">
        <description>
          When {{true}} the 'ICMPv6 echo request' packet must be answered with
          an 'ICMPv6 echo reply'. When {{false}} the 'ICMPv6 echo request'
          packet must be dropped.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="IPv6PassThroughICMPEchoRequest" access="readWrite"
          version="2.18">
        <description>
          When {{true}} the 'ICMPv6 echo request' packet must be forward to the
          LAN device. When {{false}} the 'ICMPv6 echo request' packet must be
          dropped.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="StealthMode" access="readWrite">
        <description>
          Enables or disables the stealth mode. Stealth mode defines how the
          firewall must treat "unwanted" packets.

          Typically the feature is enabled for WAN facing interface(s). Stealth
          mode is applicable for both IPv4 and IPv6, and UDP and TCP based
          protocols.

          If set to {{true}} all 'UDP/TCP' packets are dropped silently. This
          prevents a possible attacker from knowing which ports are
          opened/closed on a gateway.

          When {{param}} is set to {{false}}, the firewall will reply with an
          ICMP port unreachable.

          If there are other firewall rules in effect, they will have priority
          over this parameter. i.e: If an 'UDP' port is set to 'ACCEPT', and
          the {{param}} is activated, then the port will be accepted and all
          the other 'UDP' ports will be blocked.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Firewall.ConnectionTracking." access="readOnly"
        version="2.17">
      <description>
        This Object contains the IP connection tracking related parameters.
        Application Layer Gateway (ALG) are used to provide Network Address
        Translation (NAT) support for various application-layer protocols.
      </description>
    </object>

    <object name="Device.Firewall.ConnectionTracking.SIP." access="readOnly"
        version="2.17">
      <description>
        SIP is an application-layer control protocol used to establish, modify,
        and terminate multimedia sessions.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the connection tracking support for the SIP
          protocol (SIP ALG).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Ports" access="readWrite">
        <description>
          Port numbers of the SIP servers that need to be monitored.
        </description>
        <syntax>
          <list/>
          <int>
            <range minInclusive="0" maxInclusive="65535"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="DirectMedia" access="readWrite">
        <description>
          Allow media streams between signaling endpoints.
        </description>
        <syntax>
          <boolean/>
          <default type="implementation" value="true"/>
        </syntax>
      </parameter>

      <parameter name="DirectSignaling" access="readWrite">
        <description>
          Allow incoming calls from registrar.
        </description>
        <syntax>
          <boolean/>
          <default type="implementation" value="true"/>
        </syntax>
      </parameter>

      <parameter name="ExternalMedia" access="readWrite">
        <description>
          Allow media streams that are not passing through this router.

          When this feature is activated, the logic will maintain the SDP
          payload as is when it identifies that the interface towards the
          invited party is the same as the one towards the media endpoint.
        </description>
        <syntax>
          <boolean/>
          <default type="implementation" value="false"/>
        </syntax>
      </parameter>

      <parameter name="TimeOut" access="readWrite">
        <description>
          SIP time out session.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Firewall.ConnectionTracking.H323." access="readOnly"
        version="2.17">
      <description>
        H.323 is a VoIP signalling protocol from ITU-T
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the connection tracking support for the H323
          protocol (H323 ALG).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="RegistrationRequestTTL" access="readWrite">
        <description>
          When no TTL is specified in the registration request message the TTL
          specified here will be used.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="GKRoutedOnly" access="readWrite">
        <description>
          Only accept calls from the gatekeeper.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="CallForwardFilter" access="readWrite">
        <description>
          Create call forwarding expectations only when both endpoints are on
          different sides, as determined by routing information.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Firewall.ConnectionTracking.FTP." access="readOnly"
        version="2.17">
      <description>
        Tracking FTP connections is difficult due to the requirement for
        specialized helpers to handle them, along with the complexities of
        masquerading and Network Address Translation. This involves supporting
        FTP on Layer 3 with independent connection tracking.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the connection tracking support for the FTP
          protocol (FTP ALG).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Ports" access="readWrite">
        <description>
          Port numbers of the FTP servers that need to be monitored.
        </description>
        <syntax>
          <list maxItems="8"/>
          <int>
            <range minInclusive="0" maxInclusive="65535"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="Loose" access="readWrite">
        <description>
          The FTP protocol can enable a user to connect a FTP server to another
          FTP server. This could lead to a hole in the DMZ and it is therefore
          recommended to disable this feature.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Firewall.ConnectionTracking.PPTP." access="readOnly"
        version="2.17">
      <description>
        PPTP Connection Tracking configuration object.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the connection tracking support for the PPTP
          protocol (PPTP ALG).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Firewall.ConnectionTracking.TFTP." access="readOnly"
        version="2.17">
      <description>
        TFTP Connection Tracking configuration object.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the connection tracking support for the TFTP
          protocol (TFTP ALG).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Ports" access="readWrite">
        <description>
          Port numbers of the TFTP servers that need to be monitored.
        </description>
        <syntax>
          <list maxItems="8"/>
          <int>
            <range minInclusive="0" maxInclusive="65535"/>
          </int>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Firewall.ConnectionTracking.IRC." access="readOnly"
        version="2.17">
      <description>
        IRC Connection Tracking configuration object.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the connection tracking support for the IRC
          protocol (IRC ALG).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Ports" access="readWrite">
        <description>
          Port numbers of the IRC servers that need to be monitored.
        </description>
        <syntax>
          <list/>
          <int>
            <range minInclusive="0" maxInclusive="65535"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="MAXDCCChannels" access="readWrite">
        <description>
          Maximum number of Direct Client-to-Client (DCC) channels allowed per
          IRC session.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="DCCTimeout" access="readWrite">
        <description>
          Timeout duration for unestablished Direct Client-to-Client (DCC)
          channels.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Firewall.Set.{i}." access="readWrite"
        numEntriesParameter="SetNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.18">
      <description>
        This object is used for configuring sets of IP, MAC addresses and/or
        port numbers which can then be used in conjunction with the firewall.

        It provides a more efficient way to manage large collections of
        addresses and ports compared to traditional methods of listing them
        individually within firewall rules.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="Name"/>
      </uniqueKey>

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

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

      <parameter name="Origin" access="readOnly">
        <description>
          Indicates the Origin of the {{object}} instance.

          Note: This parameter was changed to readOnly in the Device 2.19
          version.
        </description>
        <syntax>
          <string>
            <enumeration value="User">
              <description>
                Used for indicating that the set rule was created by the
                end-user. For example through the web-ui.
              </description>
            </enumeration>
            <enumeration value="System">
              <description>
                Used for indicating that the set rule was created by the system
                itself.
              </description>
            </enumeration>
            <enumeration value="Controller">
              <description>
                Used for indicating that the set rule was created by a
                Controller.
              </description>
            </enumeration>
          </string>
          <default type="object" value="Controller"/>
        </syntax>
      </parameter>

      <parameter name="Name" access="readWrite">
        <description>
          Human-readable name associated with this {{object}} entry.
        </description>
        <syntax>
          <string>
            <size maxLength="31"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Type" access="readWrite">
        <description>
          Describes the intention of the {{object|Rule}} entries and what it
          contains.
        </description>
        <syntax>
          <string>
            <enumeration value="IPAddresses">
              <description>
                The Rule set entry describes only a list of IPaddresses.
              </description>
            </enumeration>
            <enumeration value="Ports">
              <description>
                The Rule set entry describes only a list of ports.
              </description>
            </enumeration>
            <enumeration value="MACAddresses">
              <description>
                The Rule set entry describes only a list of MAC addresses.
              </description>
            </enumeration>
          </string>
          <default type="object" value="IPAddresses"/>
        </syntax>
      </parameter>

      <parameter name="IPVersion" access="readWrite" version="2.18">
        <description>
          Specifies the IP protocol version, following the definitions in
          {{bibref|IANA-ipversionnumbers}}. Valid values are: {{range}}.
        </description>
        <syntax>
          <int>
            <range minInclusive="4" maxInclusive="4">
              <description>
                IPv4
              </description>
            </range>
            <range minInclusive="6" maxInclusive="6">
              <description>
                IPv6
              </description>
            </range>
            <range minInclusive="-1" maxInclusive="-1">
              <description>
                No specific IP version is required
              </description>
            </range>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

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

    <object name="Device.Firewall.Set.{i}.Rule.{i}." access="readWrite"
        numEntriesParameter="RuleNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.18">
      <description>
        Firewall Rule object that is used for configuring the set lists.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="Exclude" access="readWrite">
        <description>
          Specifies if this rule entry should match or not match the configured
          criteria.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="IPAddressList" access="readWrite">
        <description>
          Each element of the list can specify the source IPv4 or IPv6 address
          or subnet mask.

          Note: The IP version of the IP address MUST correspond to the IP
          version set in {{param|#.IPVersion}}. Can not be used in combination
          with {{param|MACAddressList}} or {{param|PortList}}.
        </description>
        <syntax>
          <list/>
          <dataType ref="IPAddress"/>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>

      <parameter name="MACAddressList" access="readWrite">
        <description>
          Each element of the list can specify the MAC addresses that can be
          used by the {{object}} entry.

          Note: Can not be used in combination with {{param|IPAddressList}} or
          {{param|PortList}}.
        </description>
        <syntax>
          <list/>
          <dataType ref="MACAddress"/>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>

      <parameter name="PortList" access="readWrite">
        <description>
          Each element of the list can specify the port number or a port range
          that can be used by the {{object}} entry. Syntax:

          A single port can be configured as e.g. '80'. A port range can be
          configured as '8000-8010'.

          Note: Can not be used in combination with {{param|MACAddressList}} or
          {{param|IPAddressList}}.
        </description>
        <syntax>
          <list/>
          <string/>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Firewall.Log.{i}." access="readWrite"
        numEntriesParameter="LogNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.19">
      <description>
        Firewalls monitor network traffic and enforce security policies. To aid
        in debugging and troubleshooting potential issues, it's possible to
        capture specific information when certain rules are triggered. These
        captured details, known as traces, are then logged by the
        implementation for further analysis.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the firewall logging configuration for this
          entry.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Description" access="readWrite">
        <description>
          Human-readable description associated with this entry.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Severity" access="readWrite">
        <description>
          Specifies the severity level at which the message is logged.
        </description>
        <syntax>
          <string>
            <enumeration value="Emergency">
              <description>Indicates that the system is unusable.</description>
            </enumeration>
            <enumeration value="Alert">
              <description>
                Indicating that an action must be taken immediately.
              </description>
            </enumeration>
            <enumeration value="Critical">
              <description>Indicates a critical condition.</description>
            </enumeration>
            <enumeration value="Error">
              <description>Indicates a errors condition.</description>
            </enumeration>
            <enumeration value="Warning">
              <description>Indicates a warning condition.</description>
            </enumeration>
            <enumeration value="Notice">
              <description>Indicates a informational message.</description>
            </enumeration>
            <enumeration value="Debug">
              <description>Indicates a debug-level message.</description>
            </enumeration>
          </string>
          <default type="object" value="Debug"/>
        </syntax>
      </parameter>

      <parameter name="Prefix" access="readWrite">
        <description>
          Specifies the prefix that must be added to each logmessage. When
          {{param|.Firewall.Chain.{i}.Rule.{i}.LogRef}} specifies multiple
          {{object}} entries. The implementation may chose to combine both
          prefixes into one. When {{param}} is {{empty}} no prefix will be
          added to the log message.

          The maximum allowed {{param}} length is implementation specific.
        </description>
        <syntax>
          <string/>
          <default type="object" value=""/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Firewall.Log.{i}.Filter." access="readOnly"
        minEntries="1" maxEntries="1" version="2.19">
      <description>
        Defines the filter criteria used for configuring firewall log rules.
        These criteria determine which firewall events are logged based on
        specified parameters such as policy, source interface, and destination
        interface.
      </description>

      <parameter name="Policy" access="readWrite">
        <description>
          Specifies the policy for filtering logs based on the type of firewall
          rule. This parameter allows you to select which types of rules (e.g.,
          all rules, denied rules, or allowed rules) will have their events
          logged.
        </description>
        <syntax>
          <string>
            <enumeration value="All">
              <description>
                Logs all types of firewall rules, including ACCEPT, DROP, and
                REJECT rules.
              </description>
            </enumeration>
            <enumeration value="Denied">
              <description>
                Logs only DROP or REJECT rules, which indicate denied
                connections or rejected packets.
              </description>
            </enumeration>
            <enumeration value="Allowed">
              <description>
                Logs only ACCEPT rules, which indicate permitted connections or
                allowed packets.
              </description>
            </enumeration>
          </string>
          <default type="object" value="All"/>
        </syntax>
      </parameter>

      <parameter name="SourceInterface" access="readWrite">
        <description>
          Filters logs based on the rule's source interface. This parameter
          specifies the network interface from which the traffic originates. If
          left empty, no filtering on the source interface will be applied.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent=".IP.Interface."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DestinationInterface" access="readWrite">
        <description>
          Filters logs based on the rule's destination interface. This
          parameter specifies the network interface to which the traffic is
          directed. If left empty, no filtering on the destination interface
          will be applied.
        </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.PeriodicStatistics." access="readOnly" minEntries="1"
        maxEntries="1" version="2.0">
      <description>
        This object configures collection of periodic statistics for the
        device.

        Periodic statistics are measured over a sample interval (which can be
        aligned with absolute time) and are made available to the Controller as
        a comma-separated list of the most recent &lt;n&gt; samples.

        This object provides a single set of global settings that affect the
        entire device unless overridden locally.
      </description>

      <parameter name="MinSampleInterval" access="readOnly">
        <description>
          Minimum sample interval in {{units}} that the CPE is able to support.

          A value of 0 indicates no specific minimum sample interval.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MaxReportSamples" access="readOnly">
        <description>
          Maximum number of samples of each statistic that the CPE is able to
          store and report.

          A value of 0 indicates no specific maximum number of samples.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

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

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

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

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables collection of periodic statistics for this sample
          set.

          When collection of periodic statistics is enabled, any stored samples
          are discarded, and the first sample interval begins immediately.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

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

      <parameter name="SampleInterval" access="readWrite">
        <description>
          The sample interval in {{units}}. Each statistic is measured over
          this sample interval.

          The CPE MAY also support an internal sampling rate (implementation
          dependent) that is faster than the {{param}} and allows the CPE to
          support the various options available in
          {{param|Parameter.{i}.CalculationMode}}.

          The CPE MAY reject a request to set {{param}} to less than
          {{param|#.MinSampleInterval}}.

          Sample intervals MUST begin every {{param}} {{units}}, with no delay
          between samples.

          If {{param}} is changed while collection of periodic statistics is
          enabled, any stored samples are discarded, and the first sample
          interval begins immediately.

          For example, if {{param|ReportSamples}} is 24 and {{param}} is 3600
          (an hour), the CPE can store up to a day's worth of samples for each
          statistic.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="3600"/>
        </syntax>
      </parameter>

      <parameter name="ReportSamples" access="readWrite">
        <description>
          The number of samples that the CPE will store and report for each
          statistic.

          The CPE MUST permit {{param}} to be set to at least
          {{param|#.MaxReportSamples}}.

          If {{param}} is changed while collection of periodic statistics is
          enabled, the CPE will truncate or extend its statistics buffers as
          appropriate, but statistics collection MUST NOT otherwise be
          affected.

          For example, if {{param}} is 24 and {{param|SampleInterval}} is 3600
          (an hour), the CPE can store up to a day's worth of samples for each
          statistic.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
          </unsignedInt>
          <default type="object" value="24"/>
        </syntax>
      </parameter>

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

      <parameter name="ReportEndTime" access="readOnly">
        <description>
          The absolute time at which the sample interval for the last stored
          sample (for each statistic) ended.

          If {{template|PERIODICSTATISTICS-FORCESAMPLE}} has been used to force
          statistics for the current sample to be calculated and updated in the
          data model, then {{param}} MUST be updated to reflect the actual time
          over which stored data was collected.
        </description>
        <syntax>
          <dateTime/>
          <default type="object" value="0001-01-01T00:00:00Z"/>
        </syntax>
      </parameter>

      <parameter name="SampleSeconds" access="readOnly" activeNotify="canDeny">
        <description>
          {{list}} Each entry indicates the number of {{units}} during which
          data was collected during the sample interval.

          Individual {{param}} values can be less than
          {{param|SampleInterval}}, for several reasons, including:

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

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

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

      <parameter name="Status" access="readOnly">
        <description>
          Indicates availability of Sample statistics. {{enum}}

          The {{enum|Trigger}} value is only used for triggering the ACS to
          fetch the collected data and can only be used when
          {{param|FetchSamples}} is in the range [1:{{param|ReportSamples}}].

          The transition from {{enum|Enabled}} to {{enum|Trigger}} to
          {{enum|Enabled}} MUST be instantaneous and so will result in only a
          single value change for notification purposes.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled">
              <description>Collection is disabled.</description>
            </enumeration>
            <enumeration value="Enabled">
              <description>Collection is enabled.</description>
            </enumeration>
            <enumeration value="Trigger">
              <description>
                Collection is enabled and the ACS SHOULD now fetch the
                collected data.
              </description>
            </enumeration>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

      <parameter name="TimeReference" access="readWrite">
        <description>
          An absolute time reference in UTC to determine when sample intervals
          will complete. Each sample interval MUST complete at this reference
          time plus or minus an integer multiple of {{param|SampleInterval}}.

          {{param}} is used only to set the "phase" of the sample and fetch
          intervals. The actual value of {{param}} can be arbitrarily far into
          the past or future.

          This time reference also determines when the {{param|Status}}
          {{enum|Enabled|Status}} to {{enum|Trigger|Status}} to
          {{enum|Enabled|Status}} transitions that are controlled by
          {{param|FetchSamples}} will occur. If collection of periodic
          statistics is enabled and {{param|FetchSamples}} is in the range
          [1:{{param|ReportSamples}}] then each such {{param|Status}}
          transition MUST occur at this reference time plus or minus an integer
          multiple of {{param|FetchSamples}} * {{param|SampleInterval}} (the
          fetch interval).

          If {{param}} is changed while collection of periodic statistics is
          enabled, any stored samples are discarded, and the first sample
          interval begins immediately.

          The Unknown Time value defined in {{bibref|TR-106}} indicates that no
          particular time reference is specified. That is, the CPE MAY locally
          choose the time reference, and is required only to adhere to the
          specified sample and fetch intervals.

          If absolute time is not available to the CPE, its sample and fetch
          interval behavior MUST be the same as if the {{param}} parameter was
          set to the Unknown Time value.

          For example, if {{param|SampleInterval}} is 3600 (an hour) and if
          {{param}} is set to UTC midnight on some day (in the past, present,
          or future) then sample intervals will complete on each UTC hour
          (00:00, 01:00, 02:00 etc).

          If, in addition, {{param|FetchSamples}} is 24, then the fetch
          interval is 86400 (a day) and {{param|Status}}
          {{enum|Enabled|Status}} to {{enum|Trigger|Status}} to
          {{enum|Enabled|Status}} transitions will occur every day at UTC
          midnight.

          Note that, if {{param}} is set to a time other than the Unknown Time,
          the first sample interval (which has to begin immediately) will
          almost certainly be shorter than {{param|SampleInterval}}). This is
          why {{param}} is defined in terms of when sample intervals complete
          rather than start.
        </description>
        <syntax>
          <dateTime/>
          <default type="object" value="0001-01-01T00:00:00Z"/>
        </syntax>
      </parameter>

      <parameter name="FetchSamples" access="readWrite">
        <description>
          The number of sample intervals to be collected before transitioning
          {{param|Status}} from {{enum|Enabled|Status}} to
          {{enum|Trigger|Status}} to {{enum|Enabled|Status}}.

          If this SampleSet is enabled and {{param}} is in the range
          [1:{{param|ReportSamples}}] then {{param|Status}} MUST transition
          from {{enum|Enabled|Status}} to {{enum|Trigger|Status}} to
          {{enum|Enabled|Status}} on completion of every {{param}} sample
          intervals. Otherwise, the transition MUST NOT occur.

          For example, if {{param|ReportSamples}} is 25 and {{param}} is 24,
          then the CPE will store 25 values for each monitored parameter and
          the above {{param|Status}} transition will occur as the CPE stores
          each 24th of 25 sample intervals, which means that the ACS could
          delay for up to two sample intervals before reading the stored values
          and would still not miss any samples (see also
          {{template|PERIODICSTATISTICS-FORCESAMPLE}}).

          To disable this trigger mechanism and still collect sampled
          statistics, {{param}} can be set to either 0 or a value greater than
          {{param|ReportSamples}}.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="ForceSample" access="readWrite"
          dmr:previousParameter="FetchSamples">
        <description>
          When set to {{true}}, forces statistics for the current sample to be
          calculated and updated in the data model. Setting it to {{false}} has
          no effect. {{hidden}}

          If this is the first time that {{param}} has been set to {{true}}
          during the current sample interval, this MUST cause a new value to be
          added to each of the periodic statistics comma-separated list
          parameters, and the {{param|ReportEndTime}} and all
          {{param|SampleSeconds}} parameters MUST be updated accordingly.

          If this is not the first time that {{param}} has been set to {{true}}
          during the current sample interval, then the new values that were
          added as described in the previous paragraph, and the
          {{param|ReportEndTime}} and all {{param|SampleSeconds}} parameters,
          MUST be updated accordingly.

          Note that {{param}} just provides a "sneak preview" of the current
          sample. It does not create a new sample and it does not interfere
          with the sample interval schedule.

          At the end of each sample interval, if {{param}} was set to {{true}}
          during the sample interval then the new values that were added as
          described above, and the {{param|ReportEndTime}} and all
          {{param|SampleSeconds}} parameters, will be updated accordingly. In
          other words, the partial sample data that was created when {{param}}
          was set to {{true}} will be updated one last time at the end of the
          sample interval.
        </description>
        <syntax command="true">
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}."
        access="readWrite" numEntriesParameter="ParameterNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded"
        version="2.0">
      <description>
        Periodic statistics parameter table for this sample set. This table
        contains entries for parameters whose values are to be sampled.

        Note that the comma-separated lists in this object (SampleSeconds,
        SuspectData and Values) only ever change (a) when first enabled, (b)
        when {{template|PERIODICSTATISTICS-FORCESAMPLE}} has been used to force
        statistics for the current sample to be calculated (a "sneak preview"
        of the current sample), or (c) at the end of the sample interval.
      </description>
      <uniqueKey functional="true">
        <parameter ref="Reference"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

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

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

      <parameter name="SampleMode" access="readWrite">
        <description>
          Controls how this parameter's value is sampled. {{enum}}

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

      <parameter name="CalculationMode" access="readWrite">
        <description>
          Controls how this parameter's statistic is calculated from the
          sampled value(s) of each internal sample interval. {{enum}}

          Parameters of non-numeric types can only support {{enum|Latest}}. The
          value of the {{param}} MUST be ignored for such parameters.

          {{param|SampleMode}} MUST be applied before {{param}}, i.e. the
          inputs to the calculation will have already accounted for
          {{param|SampleMode}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Latest">
              <description>
                Statistic is sampled value at end of sample interval
              </description>
            </enumeration>
            <enumeration value="Minimum">
              <description>
                Statistic is minimum sampled value during sample interval
              </description>
            </enumeration>
            <enumeration value="Maximum">
              <description>
                Statistic is maximum sampled value during sample interval
              </description>
            </enumeration>
            <enumeration value="Average">
              <description>
                Statistic is average (mean) sampled value during sample
                interval
              </description>
            </enumeration>
            <enumeration value="Histogram" version="2.18">
              <description>
                Statistic is a histogram representing the sampled values during
                the sample interval with histogram bin spacing defined by
                {{param|HistogramBinBoundaries}}. With this selection, the
                output is in {{param|ValuesIfHistogram}}.
              </description>
            </enumeration>
          </string>
          <default type="object" value="Latest"/>
        </syntax>
      </parameter>

      <parameter name="LowThreshold" access="readWrite">
        <description>
          The low threshold value that controls the calculation of
          {{template|PERIODICSTATISTICS-FAILURES}}.

          A value equal to {{param|HighThreshold}} disables the
          threshold/failure mechanism.

          Parameters of non-numeric types cannot support the threshold/failure
          mechanism. The value of this parameter MUST be ignored for such
          parameters.
        </description>
        <syntax>
          <int/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="HighThreshold" access="readWrite">
        <description>
          The high threshold value that controls the calculation of
          {{template|PERIODICSTATISTICS-FAILURES}}.

          A value equal to {{param|LowThreshold}} disables the
          threshold/failure mechanism.

          Parameters of non-numeric types cannot support the threshold/failure
          mechanism. The value of this parameter MUST be ignored for such
          parameters.
        </description>
        <syntax>
          <int/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="SampleSeconds" access="readOnly" activeNotify="canDeny">
        <description>
          {{list}} Each entry indicates the number of {{units}} during which
          data was collected for this parameter during the sample interval.

          Individual {{param}} values can be less than
          {{param|#.SampleInterval}}, for several reasons, including:

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

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

      <parameter name="SuspectData" access="readOnly" activeNotify="canDeny">
        <description>
          {{list}} Each entry is 0 if the sampled value is believed to be
          valid, or 1 if an event that might affect the validity of the sampled
          value occurred during the sample interval.

          For example, if the parameter value were to be reset during the
          sample interval then it would be appropriate to set {{param}} to 1.
        </description>
        <syntax>
          <list/>
          <unsignedInt>
            <range maxInclusive="1"/>
          </unsignedInt>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>

      <parameter name="Values" access="readOnly" activeNotify="canDeny">
        <description>
          {{list}} Each entry indicates the value of the referenced parameter,
          as determined by {{param|SampleMode}}, during the sample interval.

          The statistics values in this comma-separated list MUST be in time
          order, with the oldest one first and the most recent one last.

          If the {{param|SampleMode}} parameter is not present, or is
          inappropriate for the referenced parameter, the statistics values
          MUST be collected in Current mode.

          if {{param|CalculationMode}} has value "Histogram" then the values of
          the referenced parameter are in {{param|ValuesIfHistogram}}.
        </description>
        <syntax>
          <list/>
          <string/>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>

      <parameter name="ValuesIfHistogram" access="readOnly"
          activeNotify="canDeny" version="2.18">
        <description>
          {{list}} Each entry indicates the value of the referenced parameter,
          as determined by {{param|SampleMode}}, during the sample interval.

          The statistics values in this comma-separated list MUST be in time
          order, with the oldest one first and the most recent one last.

          If the {{param|SampleMode}} parameter is not present, or is
          inappropriate for the referenced parameter, the statistics values
          MUST be collected in Current mode.

          This parameter applies only if {{param|CalculationMode}} has value
          "Histogram" and then this parameter is the values of the sampled
          histograms, where each histogram bin is the count of the number of
          samples within the corresponding {{param|HistogramBinBoundaries}},
          and this parameter is expressed using square brackets to protect
          comma separators within nested lists. For example,
          [12,5,1,0,1],[12,3,2,1,0] represents two histograms.
        </description>
        <syntax>
          <list nestedBrackets="required"/>
          <string/>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>

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

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

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

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

          * "out of range (high)" : current value is greater than or equal to
            {{param|HighThreshold}}.

          Note that, if {{param|LowThreshold}} and {{param|HighThreshold}} are
          both the same, the threshold/failure mechanism is disabled, so the
          value of this parameter will not increment.

          This parameter can be incremented at any time during a sample
          interval, and might be incremented more than once during a single
          sample interval. For this reason, the CPE SHOULD place a locally
          specified limit on the frequency at which it will notify the
          Controller of such changes.

          Parameters of non-numeric types cannot support the threshold/failure
          mechanism. The value of this parameter MUST be ignored for such
          parameters.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="HistogramBinBoundaries" access="readWrite"
          version="2.18">
        <description>
          {{list}} Definition of the boundaries between histogram bins. Applies
          if {{param|CalculationMode}} has value "Histogram". Each value is the
          minimum value of this bin, and the next value is just above the
          maximum value of this bin. For example, “0,1,4,8,” defines the four
          histogram bins: 0 to 1 but not including values identically equal to
          1, 1 to 4 but not including values identically equal to 4, 4 to 8 but
          not including values identically equal to 8, and greater than or
          equal to 8. (No value after the last comma means no upper bound.) If
          this parameter is set to an empty string, then no histogram will be
          collected.
        </description>
        <syntax>
          <list/>
          <string/>
        </syntax>
      </parameter>
    </object>

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

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

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

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

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

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

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

    <object name="Device.FaultMgmt.SupportedAlarm.{i}." access="readOnly"
        numEntriesParameter="SupportedAlarmNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.4">
      <description>
        Supported Alarm Entries which can be raised by the device.

        The instance numbers for this table SHOULD be maintained across
        firmware upgrades of the device.
      </description>
      <uniqueKey functional="true">
        <parameter ref="EventType"/>
        <parameter ref="ProbableCause"/>
        <parameter ref="SpecificProblem"/>
        <parameter ref="PerceivedSeverity"/>
      </uniqueKey>

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

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

      <parameter name="SpecificProblem" access="readOnly">
        <description>
          Provides further qualification on the alarm beyond
          {{param|EventType}} and {{param|ProbableCause}}.

          This is vendor defined and will be {{empty}} if the device doesn't
          support unique indexing of the table using {{param}}.

          The string can be set to "*" to indicate the default case if only a
          subset of {{param}} are to be contained within the table.
        </description>
        <syntax>
          <string>
            <size maxLength="128"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="PerceivedSeverity" access="readOnly">
        <description>
          Indicates the relative level of urgency for operator attention, see
          {{bibref|ITU-X.733}}. {{enum}}

          This will be {{empty}} if the device doesn't support unique indexing
          of the table using {{param}}.

          The string can be set to "*" to indicate the default case if only a
          subset of {{param}} are to be contained within the table.
        </description>
        <syntax>
          <string>
            <enumeration value="">
              <description>{{empty}}</description>
            </enumeration>
            <enumeration value="*"/>
            <enumeration value="Cleared"/>
            <enumeration value="Critical"/>
            <enumeration value="Major"/>
            <enumeration value="Minor"/>
            <enumeration value="Warning"/>
            <enumeration value="Indeterminate"/>
          </string>
        </syntax>
      </parameter>

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

    <object name="Device.FaultMgmt.CurrentAlarm.{i}." access="readOnly"
        numEntriesParameter="CurrentAlarmNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.4">
      <description>
        Contains all currently active alarms (whose
        {{param|#.SupportedAlarm.{i}.PerceivedSeverity}} is not
        {{enum|Cleared|#.SupportedAlarm.{i}.PerceivedSeverity}}).

        Newly raised alarms result in a new entry in this table being added,
        any changes to the alarm as a result of an update event are updated in
        the existing table entry, and a clear event raised against an alarm
        results in the alarm being removed from this table.

        If maximum entries as indicated by {{param|#.MaxCurrentAlarmEntries}}
        is reached, the next event overrides the object with the oldest
        {{param|AlarmChangedTime}}.

        When a new alarm replaces an existing alarm, then all parameter values
        for that instance are considered as changed for the purposes of value
        change notifications to the Controller (even if their new values are
        identical to those of the prior alarm).
      </description>
      <uniqueKey functional="true">
        <parameter ref="AlarmIdentifier"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="EventType"/>
        <parameter ref="ProbableCause"/>
        <parameter ref="SpecificProblem"/>
      </uniqueKey>

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

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

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

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

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

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

      <parameter name="SpecificProblem" access="readOnly">
        <description>
          Provides further qualification on the alarm beyond
          {{param|EventType}} and {{param|ProbableCause}}.

          This is vendor defined and will be {{empty}} if the device doesn't
          support inclusion of this information.
        </description>
        <syntax>
          <string>
            <size maxLength="128"/>
          </string>
        </syntax>
      </parameter>

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

      <parameter name="AdditionalText" access="readOnly">
        <description>
          This provides a textual string which is vendor defined.

          This will be {{empty}} if the device doesn't support inclusion of
          this information.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

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

    <object name="Device.FaultMgmt.HistoryEvent.{i}." access="readOnly"
        numEntriesParameter="HistoryEventNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.4">
      <description>
        Alarm events added or updated in {{object|#.CurrentAlarm}} are
        simultaneously entered into the this table. This table also contains
        alarm clearing events.

        Active alarms at the time of a power failure or reboot might not get an
        alarm clearing event.

        This object has a fixed number of entries with instance numbers from 1
        to {{param|#.HistoryEventNumberOfEntries}}.

        If maximum instance number {{param|#.HistoryEventNumberOfEntries}} is
        reached, the next event overrides the object with instance number 1.
        Subsequent entries override objects at sequentially increasing instance
        numbers. This logic provides for automatic "rolling" of records.
      </description>
      <uniqueKey functional="true">
        <parameter ref="EventTime"/>
        <parameter ref="AlarmIdentifier"/>
      </uniqueKey>

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

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

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

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

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

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

      <parameter name="SpecificProblem" access="readOnly">
        <description>
          Provides further qualification on the alarm beyond
          {{param|EventType}} and {{param|ProbableCause}}.

          This is vendor defined and will be {{empty}} if the device doesn't
          support inclusion of this information.
        </description>
        <syntax>
          <string>
            <size maxLength="128"/>
          </string>
        </syntax>
      </parameter>

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

      <parameter name="AdditionalText" access="readOnly">
        <description>
          This provides a textual string which is vendor defined.

          This will be {{empty}} if the device doesn't support inclusion of
          this information.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

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

    <object name="Device.FaultMgmt.ExpeditedEvent.{i}." access="readOnly"
        numEntriesParameter="ExpeditedEventNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.4">
      <description>
        Alarm events added or updated in {{object|#.CurrentAlarm}} are
        simultaneously entered into the this table if their corresponding entry
        in {{object|#.SupportedAlarm}} has
        {{param|#.SupportedAlarm.{i}.ReportingMechanism}} set to {{enum|0
        Expedited|#.SupportedAlarm.{i}.ReportingMechanism}}. This table also
        contains alarm clearing events.

        This object has a fixed number of entries with instance numbers from 1
        to {{param|#.ExpeditedEventNumberOfEntries}}.

        Initially the table starts with all instances having
        {{param|EventTime}} set to the Unknown Time value, as defined in
        {{bibref|TR-106}}.

        If maximum instance number {{param|#.ExpeditedEventNumberOfEntries}} is
        reached, the next event overrides the object with instance number 1.
        Subsequent entries override objects at sequentially increasing instance
        numbers. This logic provides for automatic "rolling" of records.

        When a new alarm replaces an existing alarm, then all parameter values
        for that instance are considered as changed for the purposes of value
        change notifications to the Controller (even if their new values are
        identical to those of the prior alarm).
      </description>
      <uniqueKey functional="true">
        <parameter ref="AlarmIdentifier"/>
      </uniqueKey>

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

          For an unpopulated entry, the value is the Unknown Time as defined in
          {{bibref|TR-106}}.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

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

          For an unpopulated entry, the value is {{empty}}.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

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

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

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

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

      <parameter name="SpecificProblem" access="readOnly">
        <description>
          Provides further qualification on the alarm beyond
          {{param|EventType}} and {{param|ProbableCause}}.

          This is vendor defined and will be {{empty}} if the device doesn't
          support inclusion of this information.
        </description>
        <syntax>
          <string>
            <size maxLength="128"/>
          </string>
        </syntax>
      </parameter>

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

      <parameter name="AdditionalText" access="readOnly">
        <description>
          This provides a textual string which is vendor defined.

          This will be {{empty}} if the device doesn't support inclusion of
          this information.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

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

    <object name="Device.FaultMgmt.QueuedEvent.{i}." access="readOnly"
        numEntriesParameter="QueuedEventNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.4">
      <description>
        Alarm events added or updated in {{object|#.CurrentAlarm}} are
        simultaneously entered into the this table if their corresponding entry
        in {{object|#.SupportedAlarm}} has
        {{param|#.SupportedAlarm.{i}.ReportingMechanism}} set to {{enum|1
        Queued|#.SupportedAlarm.{i}.ReportingMechanism}}. This table also
        contains alarm clearing events.

        This object has a fixed number of entries with instance numbers from 1
        to {{param|#.QueuedEventNumberOfEntries}}.

        Initially the table starts with all instances having
        {{param|EventTime}} set to the Unknown Time value, as defined in
        {{bibref|TR-106}}.

        If maximum instance number {{param|#.QueuedEventNumberOfEntries}} is
        reached, the next event overrides the object with instance number 1.
        Subsequent entries override objects at sequentially increasing instance
        numbers. This logic provides for automatic "rolling" of records.

        When a new alarm replaces an existing alarm, then all parameter values
        for that instance are considered as changed for the purposes of value
        change notifications to the Controller (even if their new values are
        identical to those of the prior alarm).
      </description>
      <uniqueKey functional="true">
        <parameter ref="AlarmIdentifier"/>
      </uniqueKey>

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

          For an unpopulated entry, the value is the Unknown Time as defined in
          {{bibref|TR-106}}.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

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

          For an unpopulated entry, the value is {{empty}}.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

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

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

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

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

      <parameter name="SpecificProblem" access="readOnly">
        <description>
          Provides further qualification on the alarm beyond
          {{param|EventType}} and {{param|ProbableCause}}.

          This is vendor defined and will be {{empty}} if the device doesn't
          support inclusion of this information.
        </description>
        <syntax>
          <string>
            <size maxLength="128"/>
          </string>
        </syntax>
      </parameter>

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

      <parameter name="AdditionalText" access="readOnly">
        <description>
          This provides a textual string which is vendor defined.

          This will be {{empty}} if the device doesn't support inclusion of
          this information.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

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

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

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

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

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

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

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

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

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

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

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

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

      <parameter name="SubjectAlt" access="readOnly">
        <description>
          {{list}} Each item specifies an identity that is bound to the
          certificate's subject, and thus bound to the Public Key.

          The Subject Alternative Names extension field in an X.509
          certificate, see {{bibref|RFC5280}}.
        </description>
        <syntax>
          <list>
            <size maxLength="256"/>
          </list>
          <string/>
        </syntax>
      </parameter>

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

    <object name="Device.Security.CABundle.{i}." access="readOnly"
        numEntriesParameter="CABundleNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.19">
      <description>
        This table stores information about a group of Certificate Authorities
        (CAs). A CA is a trusted entity that issues digital certificates used
        to verify the identity of servers, clients, or other entities in secure
        communication protocols like TLS.

        This group defines a collection of trusted CA certificates that can be
        used to validate server certificates during TLS connections.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Name"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables this CA group.

          When disabled, the certificates within this group will not be used
          for validation.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Name" access="readOnly">
        <description>
          The textual name assigned to this CA group for identification.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="CACertificates" access="readWrite" version="2.19">
        <description>
          Specifies the CA certificate(s) that the client must use to validate
          the certificate presented by the remote server. These CA certificates
          form a trust chain that the server certificate must match, ensuring
          that only servers with trusted certificates can establish a
          connection. This parameter supports multiple CA certificates to
          accommodate different server certificate issuers. This parameter is
          applicable only when a TLS session is being used.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetParent=".Security.Certificate."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>
    </object>

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

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

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

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

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

      <parameter name="PeriodicTime" access="readWrite">
        <description>
          An absolute time reference in UTC to determine when the CPE will
          initiate the periodic GPS scan. Each GPS scan MUST occur at (or as
          soon as possible after) this reference time plus or minus an integer
          multiple of the {{param|PeriodicInterval}}.

          {{param}} is used only to set the "phase" of the GPS scan. The actual
          value of {{param}} can be arbitrarily far into the past or future.

          For example, if {{param|PeriodicInterval}} is 86400 (a day) and if
          {{param}} is set to UTC midnight on some day (in the past, present,
          or future) then periodic GPS scans will occur every day at UTC
          midnight. These MUST begin on the very next midnight, even if
          {{param}} refers to a day in the future.

          The Unknown Time value defined in {{bibref|TR-106|Section 3.2}}
          indicates that no particular time reference is specified. That is,
          the CPE MAY locally choose the time reference, and needs only to
          adhere to the specified PeriodicInformInterval.

          If absolute time is not available to the CPE, its periodic GPS scan
          behavior MUST be the same as if {{param}} parameter was set to the
          Unknown Time value.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

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

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

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

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

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

      <parameter name="LastSuccessfulScanTime" access="readOnly"
          activeNotify="canDeny">
        <description>
          Specifies the date and time, when the GPS scan last completed
          successfully.

          {{template|FAP-GPS-RESET}}

          The values for {{param|LockedLatitude}}, {{param|LockedLongitude}}
          and {{param|NumberOfSatellites}} correspond to this time. If a scan
          has never succeeded before, the value will be the Unknown Time value,
          as defined in {{bibref|TR-106|Section 3.2}}.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="LockedLatitude" access="readOnly"
          activeNotify="canDeny">
        <description>
          This parameter specifies the latitude of the device's position in
          degrees, multiplied by 1 million. The positive value signifies the
          direction, north of the equator. The negative value signifies the
          direction, south of the equator.

          Range is from: 90d00.00' South (-90,000,000) to 90d00.00' North
          (90,000,000).

          Example: A latitude of 13d19.43' N would be represented as
          13,323,833, derived as (13*1,000,000)+((19.43*1,000,000)/60).
          Latitude of 50d00.00' S would be represented as value -50,000,000.

          {{template|FAP-GPS-RESET}}

          If a scan has never succeeded before, the value 0 is reported.
        </description>
        <syntax>
          <int>
            <range minInclusive="-90000000" maxInclusive="90000000"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="LockedLongitude" access="readOnly"
          activeNotify="canDeny">
        <description>
          This parameter specifies the longitude of the device's position in
          degrees, multiplied by 1 million. The positive value signifies the
          direction, east of the prime meridian. The negative value signifies
          the direction, west of the prime meridian.

          Range is from: 180d00.00' West (-180,000,000) to 180d00.00' East
          (180,000,000).

          Example: A longitude of 13d19.43' E would be represented as
          13,323,833, derived as (13*1,000,000)+((19.43*1,000,000)/60). A
          longitude of 50d00.00' W would be represented as value -50,000,000.

          {{template|FAP-GPS-RESET}}

          If a scan has never succeeded before, the value 0 is reported.
        </description>
        <syntax>
          <int>
            <range minInclusive="-180000000" maxInclusive="180000000"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="NumberOfSatellites" access="readOnly"
          activeNotify="canDeny">
        <description>
          The number of satellites that were locked during the test execution.
          The greater the number of satellites the better the precision of the
          results.

          {{template|FAP-GPS-RESET}}

          If a scan has never succeeded before, the value 0 is reported.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

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

    <object name="Device.FAP.GPS.ContinuousGPSStatus." access="readOnly"
        minEntries="1" maxEntries="1" version="2.4">
      <description>
        When {{param|#.ContinuousGPS}} is {{true}}, the parameters in this
        object contain the GPS status as it is continuously monitored.

        When {{param|#.ContinuousGPS}} is {{false}}, the parameters in this
        object are not being updated and their values are not accurate.
      </description>

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

      <parameter name="GotFix" access="readOnly" activeNotify="canDeny">
        <description>
          The value is {{true}} if {{param|CurrentFix}} has transitioned to
          {{true}} at least once since {{param|#.ContinuousGPS}} was enabled,
          otherwise it is {{false}}. After a reboot the value is {{false}}
          until {{param|CurrentFix}} has transitioned to {{true}} again.

          The GPS coordinates ({{param|Latitude}}, {{param|Longitude}}, and
          {{param|Elevation}}) are not valid until {{param}} has a value of
          {{true}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

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

      <parameter name="Latitude" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter represents the most recent latitude reading for the
          device's position in degrees, multiplied by 1 million. The positive
          value signifies the direction, north of the equator. The negative
          value signifies the direction, south of the equator.

          Range is from: 90 deg 00.00' South (-90,000,000) to 90 deg 00.00'
          North (90,000,000).

          Example: A latitude of 13 deg 19.43' N would be represented as
          13,323,833, derived as (13*1,000,000)+((19.43*1,000,000)/60).
          Latitude of 50 deg 00.00' S would be represented as value
          -50,000,000.

          {{param}} is not valid until {{param|GotFix}} is {{true}}.

          If the parameter has never been set before, the value 0 is reported.
          The value SHOULD be maintained over a reboot.
        </description>
        <syntax>
          <int>
            <range minInclusive="-90000000" maxInclusive="90000000"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="Longitude" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter represents the most recent longitude reading for the
          device's position in degrees, multiplied by 1 million. The positive
          value signifies the direction, east of the prime meridian. The
          negative value signifies the direction, west of the prime meridian.

          Range is from: 180d00.00' West (-180,000,000) to 180d00.00' East
          (180,000,000).

          Example: A longitude of 13d19.43' E would be represented as
          13,323,833, derived as (13*1,000,000)+((19.43*1,000,000)/60). A
          longitude of 50d00.00' W would be represented as value -50,000,000.

          {{param}} is not valid until {{param|GotFix}} is {{true}}.

          If the parameter has never been set before, the value 0 is reported.
          The value SHOULD be maintained over a reboot.
        </description>
        <syntax>
          <int>
            <range minInclusive="-180000000" maxInclusive="180000000"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="Elevation" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter represents the most recent elevation reading for the
          device's position in {{units}}, relative to the WGS84 ellipsoid. The
          positive value signifies the direction, above sea level. The negative
          value signifies the direction, below sea level.

          Range is from: 5,000.000 meters below sea level (-5,000,000) to
          25,000.000 meters above sea level (25,000,000).

          {{param}} is not valid until {{param|GotFix}} is {{true}}.

          If the parameter has never been set before, the value 0 is reported.
          The value SHOULD be maintained over a reboot.
        </description>
        <syntax>
          <int>
            <range minInclusive="-5000000" maxInclusive="25000000"/>
            <units value="millimeters"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="LastFixTime" access="readOnly" activeNotify="canDeny">
        <description>
          Represents the date and time when the last GPS Fix was acquired.

          The Unknown Time value defined in {{bibref|TR-106|Section 3.2}} is
          used when {{param|GotFix}} is {{false}}. This applies too after a
          reboot of the device until a valid location is determined and
          {{param|GotFix}} transsitions to {{true}}.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

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

      <parameter name="FirstFixTimeout" access="readWrite">
        <description>
          Number of {{units}} to wait for first GPS fix before declaring a GPS
          fault.

          A value of -1 means that there is no timeout and no fault logging.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
            <units value="seconds"/>
          </int>
        </syntax>
      </parameter>

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

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

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

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

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

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

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

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

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

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

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

      <parameter name="ReferenceLatitude" access="readWrite">
        <description>
          This parameter specifies the reference latitude for an A-GPS request
          position in degrees, multiplied by 1 million. The positive value
          signifies the direction, north of the equator. The negative value
          signifies the direction, south of the equator.

          Range is from: 90d00.00' South (-90,000,000) to 90d00.00' North
          (90,000,000).

          Example: A latitude of 13d19.43' N would be represented as
          13,323,833, derived as (13*1,000,000)+((19.43*1,000,000)/60).
          Latitude of 50d00.00' S would be represented as value -50,000,000.
        </description>
        <syntax>
          <int>
            <range minInclusive="-90000000" maxInclusive="90000000"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="ReferenceLongitude" access="readWrite">
        <description>
          This parameter specifies the reference longitude for an A-GPS request
          position in degrees, multiplied by 1 million. The positive value
          signifies the direction, east of the prime meridian. The negative
          value signifies the direction, west of the prime meridian.

          Range is from: 180d00.00' West (-180,000,000) to 180d00.00' East
          (180,000,000).

          Example: A longitude of 13d19.43' E would be represented as
          13,323,833, derived as (13*1,000,000)+((19.43*1,000,000)/60). A
          longitude of 50d00'00'' W would be represented as value -50,000,000.
        </description>
        <syntax>
          <int>
            <range minInclusive="-180000000" maxInclusive="180000000"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="ServerInUse" access="readOnly">
        <description>
          The value is {{true}} if the device has successfully contacted and
          received A-GPS info from the A-GPS server, otherwise the value is
          {{false}}.

          After a reboot the value is {{false}} until the server could be
          contacted again.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

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

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

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

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

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

      <parameter name="URL" access="readWrite">
        <description>
          {{datatype}} specifying the destination file location. HTTP and HTTPS
          transports MUST be supported. Other transports MAY be supported.

          This argument specifies only the destination file location, and does
          not indicate in any way the name or location of the local file to be
          uploaded.
        </description>
        <syntax>
          <dataType ref="URL"/>
        </syntax>
      </parameter>

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

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

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

      <parameter name="PeriodicUploadTime" access="readWrite">
        <description>
          An absolute time reference in UTC to determine when the device will
          initiate the periodic file upload. Each file upload MUST occur at
          this reference time plus or minus an integer multiple of the
          {{param|PeriodicUploadInterval}}.

          {{param}} is used only to set the "phase" of the periodic uploads.
          The actual value of {{param}} can be arbitrarily far into the past or
          future.

          For example, if {{param|PeriodicUploadInterval}} is 86400 (a day) and
          if {{param}} is set to UTC midnight on some day (in the past,
          present, or future) then periodic file uploads will occur every day
          at UTC midnight. These MUST begin on the very next midnight, even if
          {{param}} refers to a day in the future.

          The Unknown Time value as defined in {{bibref|TR-106|Section 3.2}}
          indicates that no particular time reference is specified. That is,
          the device MAY locally choose the time reference, and is REQUIRED
          only to adhere to the specified {{param|PeriodicUploadInterval}}.

          If absolute time is not available to the device, its periodic file
          upload behavior MUST be the same as if the {{param}} parameter was
          set to the Unknown Time value.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>
    </object>

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

        * Femto Awareness

        * SMS

        * MMS

        * Terminal Location

        Femto Awareness, SMS, MMS, and Terminal Location APIs are defined in
        the Release 1 API Specifications of the Service SIG in the Femto Forum
        (non public document).

        {{bibref|TR-262|appendix I}} provides the "Theory of Operation" for the
        usage of this object.
      </description>

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

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

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

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

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

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

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

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

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

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

      <parameter name="QuerySMSDeliveryStatusSupport" access="readOnly">
        <description>
          Specifies whether the QuerySMSDeliveryStatus functionality is
          supported by the FAP SMS API.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MMSAPISupport" access="readOnly">
        <description>
          Specifies whether the MMS API is supported on this device.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="QueryMMSDeliveryStatusSupport" access="readOnly">
        <description>
          Specifies whether the QueryMMSDeliveryStatus functionality is
          supported by the FAP MMS API.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="SubscribeToNotificationsOfMMSSentToApplicationSupport"
          access="readOnly">
        <description>
          Specifies whether the SubscribeToNotificationsOfMMSSentToApplication
          functionality is supported by the FAP MMS API.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="TerminalLocationAPISupport" access="readOnly">
        <description>
          Specifies whether the Terminal Location API is supported on this
          device.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="AuthenticationMethodsSupported" access="readOnly">
        <description>
          Specifies the supported methods that 3rd Party Applications can use
          to authenticate with the Femto Application Platform at
          initialization.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="Basic"/>
            <enumeration value="Digest"/>
            <enumeration value="DigitalSignature"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="AccessLevelsSupported" access="readOnly">
        <description>
          Specifies the supported access levels that 3rd Party Applications can
          request when authenticating with the Femto Application Platform at
          initialization. This access level is with respect to resources within
          the Femto Application Platform only (not to be confused with Access
          Mode parameter in .FAPService.{i}.AccessMgmt).
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="Guest"/>
            <enumeration value="Standard"/>
            <enumeration value="Restricted"/>
            <enumeration value="Administrator"/>
            <enumeration value="Debug"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SendSMSTargetAddressType" access="readOnly">
        <description>
          Specifies the supported types of addresses SMSs can be sent to.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="TelUri"/>
            <enumeration value="AnonymousReference"/>
            <enumeration value="All"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SendMMSTargetAddressType" access="readOnly">
        <description>
          Specifies the supported types of addresses MMSs can be sent to.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="TelUri"/>
            <enumeration value="AnonymousReference"/>
            <enumeration value="All"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.FAP.ApplicationPlatform.Control." access="readOnly"
        minEntries="1" maxEntries="1" version="2.4">
      <description>
        This object contains parameters related to the operation of the
        Femtozone APIs.
      </description>

      <parameter name="AuthenticationMethod" access="readWrite">
        <description>
          Specifies how 3rd Party Applications have to authenticate against
          Femto APIs in order to use it. {{reference}}

          '''''Note:''''' The credentials are not part of the data model and
          have to be supplied externally.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <enumerationRef
                targetParam="#.Capabilities.AuthenticationMethodsSupported"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="TunnelInst" access="readWrite">
        <description>
          This is the reference to the IPsec tunnel instance to be used by the
          Application Platform traffic.

          The {{param}} MUST point to a tunnel instance defined in the data
          model.

          If the referenced object is deleted, the parameter value MUST be set
          to an empty string.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.FAP.ApplicationPlatform.Control.FemtoAwareness."
        access="readOnly" minEntries="1" maxEntries="1" version="2.4">
      <description>
        This object contains parameters related to the Femto Awareness API.
      </description>

      <parameter name="APIEnable" access="readWrite">
        <description>
          Enable or disable FemtoAwareness API exposure on FAP
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="QueueEnable" access="readWrite">
        <description>
          Enable or disable Request queueing for the API
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Queueing" access="readWrite">
        <description>
          Determines how FAP handles simultaneous requests from different
          Applications to Femto Awareness API.
        </description>
        <syntax>
          <string>
            <enumeration value="FiFo"/>
            <enumeration value="Priority"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="MaxAPIUsersNumber" access="readWrite">
        <description>
          Determines the Max Number of different Applications that can send
          Requests to Femto Awareness API.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="FemtozoneID" access="readWrite">
        <description>
          Specifies Identifier of the Femtozone.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="NotificationsUserIdentifierMSISDN" access="readWrite">
        <description>
          Specifies whether the Mobile Station International Subscriber
          Directory Number (MSISDN) has to be used as UserIdentifier in Femto
          Awareness Notifications. A value of {{true}} means that the MSISDN is
          send as user identifier, a value of {{false}} means that an anonymous
          reference is used.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="SubscribeToNotificationsResponseCallbackData"
          access="readWrite">
        <description>
          Specifies whether the OPTIONAL Argument "Callback Data" has to be
          used in Responses to Requests to "Subscribe To Femto Awareness
          Notifications".
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="QueryFemtocellResponseTimezone" access="readWrite">
        <description>
          Specifies whether the OPTIONAL Argument "Timezone" has to be used in
          Responses to Requests to "Query Femtocell Status".
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.FAP.ApplicationPlatform.Control.SMS."
        access="readOnly" minEntries="1" maxEntries="1" version="2.4">
      <description>
        This object contains parameters related to the SMS API.
      </description>

      <parameter name="APIEnable" access="readWrite">
        <description>
          Enable or disable SMS API exposure on FAP
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="QueueEnable" access="readWrite">
        <description>
          Enable or disable Request queueing for the API
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Queueing" access="readWrite">
        <description>
          Determines how FAP handles simultaneous requests from different
          Applications to SMS API.
        </description>
        <syntax>
          <string>
            <enumeration value="FiFo"/>
            <enumeration value="Priority"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="MaxAPIUsersNumber" access="readWrite">
        <description>
          Determines the Max Number of different Applications that can send
          Requests to SMS API.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MinSendSMSTimeInterval" access="readWrite">
        <description>
          Determines the Minimum Time Interval in {{units}} between two
          consecutive Send SMS Requests by the same Application.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="3599"/>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="EnableQuerySMSDeliveryStatus" access="readWrite">
        <description>
          Enable or disable "QuerySMSDeliveryStatus" Operation on SMS API. When
          disabled, QuerySMSDeliveryStatus Requests to SMS API are ignored.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter
          name="EnableSubscribeToNotificationsOfMessageSentToApplication"
          access="readWrite">
        <description>
          Enable or disable
          "SubscribeToNotificationsOfMessageSentToApplication" Operation on SMS
          API. When disabled, SubscribeTo
          NotificationsOfMessageSentToApplication Requests to SMS API are
          ignored.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.FAP.ApplicationPlatform.Control.MMS."
        access="readOnly" minEntries="1" maxEntries="1" version="2.4">
      <description>
        This object contains parameters related to the MMS API.
      </description>

      <parameter name="APIEnable" access="readWrite">
        <description>
          Enable or disable MMS API exposure on FAP
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="QueueEnable" access="readWrite">
        <description>
          Enable or disable Request queueing for the API
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Queueing" access="readWrite">
        <description>
          Determines how FAP handles simultaneous requests from different
          Applications to MMS API.
        </description>
        <syntax>
          <string>
            <enumeration value="FiFo"/>
            <enumeration value="Priority"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="MaxAPIUsersNumber" access="readWrite">
        <description>
          Determines the Max Number of different Applications that can send
          Requests to MMS API.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MinSendMMSTimeInterval" access="readWrite">
        <description>
          Determines the Minimum Time Interval in {{units}} between two
          consecutive Send MMS Requests by the same Application.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="3599"/>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="EnableQueryMMSDeliveryStatus" access="readWrite">
        <description>
          Enable or disable "QuerySMSDeliveryStatus" Operation on MMS API. When
          disabled, QuerySMSDeliveryStatus Requests to MMS API are ignored.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter
          name="EnableSubscribeToNotificationsOfMessageSentToApplication"
          access="readWrite">
        <description>
          Enable or disable "SubscribeTo
          NotificationsOfMessageSentToApplication" Operation on MMS API. When
          disabled, SubscribeTo NotificationsOfMessageSentToApplication
          Requests to MMS API are ignored.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.FAP.ApplicationPlatform.Control.TerminalLocation."
        access="readOnly" minEntries="1" maxEntries="1" version="2.4">
      <description>
        This object contains parameters related to the TerminalLocation API.
      </description>

      <parameter name="APIEnable" access="readWrite">
        <description>
          Enable or disable TerminalLocation API exposure on FAP
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="QueueEnable" access="readWrite">
        <description>
          Enable or disable Request queueing for the API
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Queueing" access="readWrite">
        <description>
          Determines how FAP handles simultaneous requests from different
          Applications to TerminalLocation API.
        </description>
        <syntax>
          <string>
            <enumeration value="FiFo"/>
            <enumeration value="Priority"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="MaxAPIUsersNumber" access="readWrite">
        <description>
          Determines the Max Number of different Applications that can send
          Requests to TerminalLocation API.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="QueryMobileLocationResponseAddress" access="readWrite">
        <description>
          Specifies Terminal Address Format to be used in QueryMobileLocation
          Responses.
        </description>
        <syntax>
          <string>
            <enumeration value="TelUri"/>
            <enumeration value="AnonymousReference"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="QueryMobileLocationResponseLongitudeLatitude"
          access="readWrite">
        <description>
          Include or exclude FAP Longitude and Latitude arguments in Responses
          to QueryMobileLocation Requests.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="QueryMobileLocationResponseAltitude" access="readWrite">
        <description>
          Include or exclude FAP Altitude argument in Responses to
          QueryMobileLocation Requests .
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="QueryMobileLocationResponseTimestamp"
          access="readWrite">
        <description>
          Specifies Response Timestamp in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="86399"/>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.FAP.ApplicationPlatform.Monitoring."
        access="readOnly" minEntries="1" maxEntries="1" version="2.4">
      <description>
        This object contains parameters related to the monitoring of the
        Femtozone Application Platform and the Femtozone APIs.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables and disables this entry.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MonitoringInterval" access="readWrite">
        <description>
          Specifies the interval in {{units}} used to collect the monitoring
          measurements.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="AuthenticationRequestsReceived" access="readOnly">
        <description>
          Specifies the total number of authentication requests received by the
          Femto Application Platform. The counter will be reset whenever the
          device reboots or the {{param|Enable}} parameter is set to {{true}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="AuthenticationRequestsRejected" access="readOnly">
        <description>
          Specifies the number of authentication requests received by the Femto
          Application Platform that were rejected. The counter will be reset
          whenever the device reboots or the {{param|Enable}} parameter is set
          to {{true}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.FAP.ApplicationPlatform.Monitoring.FemtoAwareness."
        access="readOnly" minEntries="1" maxEntries="1" version="2.4">
      <description>
        This object contains parameters related to the Monitoring of the
        FemtoAwareness API.
      </description>

      <parameter name="APIAvailable" access="readOnly">
        <description>
          Specifies whether the FemtoAwareness API is currently available on
          this device (the API could be disabled or could have exhausted its
          resources)
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="APIUsers" access="readOnly">
        <description>
          Specifies the current number of Applications using the Femto
          Awareness API.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="QueueState" access="readOnly">
        <description>
          Specifies the state of the Femto Awareness API Queue.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Ready"/>
            <enumeration value="Flushed"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="QueueNum" access="readOnly">
        <description>
          Specifies the current number of requests waiting in the Femto
          Awareness API Queue.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="QueueReceived" access="readOnly">
        <description>
          Specifies the number of requests in the Femto Awareness API Queue
          that have been received. The counter will be reset whenever the
          device reboots or the {{param|#.Enable}} parameter is set to
          {{true}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="QueueDiscarded" access="readOnly">
        <description>
          Specifies the number of requests in the Femto Awareness API Queue
          that have been discarded. The counter will be reset whenever the
          device reboots or the {{param|#.Enable}} parameter is set to
          {{true}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.FAP.ApplicationPlatform.Monitoring.SMS."
        access="readOnly" minEntries="1" maxEntries="1" version="2.4">
      <description>
        This object contains parameters related to the Monitoring of the SMS
        API.
      </description>

      <parameter name="APIAvailable" access="readOnly">
        <description>
          Specifies whether the SMS API is currently available on this device
          (the API could be disabled or could have exhausted its resources)..
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="APIUsers" access="readOnly">
        <description>
          Specifies the current number of Applications using the SMS API.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="QueueState" access="readOnly">
        <description>
          Specifies the state of the SMS API Queue.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Ready"/>
            <enumeration value="Flushed"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="QueueNum" access="readOnly">
        <description>
          Specifies the current number of requests waiting in the SMS API
          Queue.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="QueueReceived" access="readOnly">
        <description>
          Specifies the number of requests in the SMS API Queue that have been
          received. The counter will be reset whenever the device reboots or
          the {{param|#.Enable}} parameter is set to {{true}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="QueueDiscarded" access="readOnly">
        <description>
          Specifies the number of requests in the SMS API Queue that have been
          discarded. The counter will be reset whenever the device reboots or
          the {{param|#.Enable}} parameter is set to {{true}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.FAP.ApplicationPlatform.Monitoring.MMS."
        access="readOnly" minEntries="1" maxEntries="1" version="2.4">
      <description>
        This object contains parameters related to the Monitoring of the MMS
        API.
      </description>

      <parameter name="APIAvailable" access="readOnly">
        <description>
          Specifies whether the MMS API is currently available on this device
          (the API could be disabled or could have exhausted its resources)..
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="APIUsers" access="readOnly">
        <description>
          Specifies the current number of Applications using the MMS API.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="QueueState" access="readOnly">
        <description>
          Specifies the state of the MMS API Queue.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Ready"/>
            <enumeration value="Flushed"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="QueueNum" access="readOnly">
        <description>
          Specifies the current number of requests waiting in the MMS API
          Queue.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="QueueReceived" access="readOnly">
        <description>
          Specifies the number of requests in the MMS API Queue that have been
          received. The counter will be reset whenever the device reboots or
          the {{param|#.Enable}} parameter is set to {{true}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="QueueDiscarded" access="readOnly">
        <description>
          Specifies the number of requests in the MMS API Queue that have been
          discarded. The counter will be reset whenever the device reboots or
          the {{param|#.Enable}} parameter is set to {{true}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.FAP.ApplicationPlatform.Monitoring.TerminalLocation."
        access="readOnly" minEntries="1" maxEntries="1" version="2.4">
      <description>
        This object contains parameters related to the Monitoring of the
        TerminalLocation API.
      </description>

      <parameter name="APIAvailable" access="readOnly">
        <description>
          Specifies whether the TerminalLocation API is currently available on
          this device (the API could be disabled or could have exhausted its
          resources)..
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="APIUsers" access="readOnly">
        <description>
          Specifies the current number of Applications using the Terminal
          Location API.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="QueueState" access="readOnly">
        <description>
          Specifies the state of the Terminal Location API Queue.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Ready"/>
            <enumeration value="Flushed"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="QueueNum" access="readOnly">
        <description>
          Specifies the current number of requests waiting in the Terminal
          Location API Queue.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="QueueReceived" access="readOnly">
        <description>
          Specifies the number of requests in the Terminal Location API Queue
          that have been received. The counter will be reset whenever the
          device reboots or the {{param|#.Enable}} parameter is set to
          {{true}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="QueueDiscarded" access="readOnly">
        <description>
          Specifies the number of requests in the Terminal Location API Queue
          that have been discarded. The counter will be reset whenever the
          device reboots or the {{param|#.Enable}} parameter is set to
          {{true}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.BulkData." access="readOnly" minEntries="1"
        maxEntries="1" version="2.5">
      <description>
        This object provides bulk data collection capabilities and global
        collection settings that affect the entire device.

        Bulk Data utilizes various solutions (e.g., IPDR, HTTP) to collect data
        from devices and transfer the data to a collection server.

        The IPDR solution is based on a service specification described in
        {{bibref|TR-232}}.

        The HTTP solution is based on transfer mechanisms described in
        {{template|BULK-DATA-HTTP-REF}}.

        {{template|BULK-DATA-OPT-SOLNS}}

        The Bulk Data Collection Profiles are measured over a reporting
        interval (which can be aligned with absolute time) and are made
        available to the collection server.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables all collection profiles.

          If {{false}}, bulk data will not be collected or reported.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          Indicates the status of the Bulk Data Collection mechanism.
        </description>
        <syntax>
          <string>
            <enumeration value="Enabled">
              <description>
                Bulk Data Collection is enabled and working as intended.
              </description>
            </enumeration>
            <enumeration value="Disabled">
              <description>Bulk Data Collection is disabled.</description>
            </enumeration>
            <enumeration value="Error" optional="true">
              <description>
                Bulk Data Collection is enabled, but there is an error
                condition preventing the successful collection of bulk data.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="MinReportingInterval" access="readOnly">
        <description>
          Minimum reporting interval in {{units}} that the CPE is capable of
          supporting.

          A value of 0 indicates no minimum reporting interval.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Protocols" access="readOnly">
        <description>
          Represents the IPDR and transport protocols that this device is
          capable of supporting.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="Streaming">
              <description>
                IPDR Streaming Protocol {{bibref|IPDR-SP}}
              </description>
            </enumeration>
            <enumeration value="File">
              <description>
                IPDR File Transfer Protocol {{bibref|IPDR-FTP}}
              </description>
            </enumeration>
            <enumeration value="HTTP">
              <description>
                Hypertext Transfer Protocol {{bibref|RFC2616}}
              </description>
            </enumeration>
            <enumeration value="MQTT">
              <description>
                Message Queuing Telemetry Transport {{bibref|MQTT31}},
                {{bibref|MQTT311}}, and {{bibref|MQTT50}}
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="EncodingTypes" access="readOnly">
        <description>
          Represents the Encoding Types for the protocols that this device is
          capable of supporting.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="XML">
              <description>
                Used with the IPDR Streaming and File Protocols.
                {{bibref|IPDR-XML}}
              </description>
            </enumeration>
            <enumeration value="XDR">
              <description>
                Used with the IPDR Streaming and File Protocols.
                {{bibref|IPDR-XDR}}
              </description>
            </enumeration>
            <enumeration value="CSV">
              <description>
                Comma Separated Values. Used with the HTTP Protocol.
                {{bibref|RFC4180}}
              </description>
            </enumeration>
            <enumeration value="JSON">
              <description>
                JavaScript Object Notation. Used with the HTTP Protocol.
                {{bibref|RFC7159}}
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="ParameterWildCardSupported" access="readOnly"
          version="2.10">
        <description>
          When {{true}}, the Device supports the use of wildcards to determine
          the parameters that are reported using a Profile.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MaxNumberOfProfiles" access="readOnly">
        <description>
          The maximum number of profiles that can exist at any given time.
          Specifically, the maximum number of {{object|Profile.{i}.}} instances
          that the Controller can create.

          If the value of this parameter is -1, then it means that the CPE
          doesn't have a limit to the number of profiles that can exist.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="MaxNumberOfParameterReferences" access="readOnly">
        <description>
          The maximum number of parameters that can be referenced via the bulk
          data collection mechanism. Specifically, the maximum number of
          parameters that can be referenced via
          {{param|Profile.{i}.Parameter.{i}.Reference}} across all Profile and
          Parameter instances (including the expansion of partial paths within
          the Reference parameter).

          If the value of this parameter is -1, then it means that the CPE
          doesn't have a limit to the number of parameter that can be
          referenced via the bulk data collection mechanism.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="ProfileNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.BulkData.Profile.{i}." access="readWrite"
        numEntriesParameter="ProfileNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.5">
      <description>
        A set of Bulk Data Collection profiles.

        Each profile represents a bulk data report, including its own timing
        configuration, communications configuration, and set of parameters.
        This allows the Controller to configure multiple reports to be
        generated at different times for different sets of data.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables this specific bulk data profile.

          If {{false}}, this profile will not be collected or reported.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Alias" access="readWrite" version="2.5">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name" access="readWrite" version="2.10">
        <description>
          The name of the profile.
        </description>
        <syntax>
          <string>
            <size maxLength="255"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="NumberOfRetainedFailedReports" access="readWrite"
          version="2.10">
        <description>
          The number of failed reports to be retained and transmitted (in
          addition to the current report) at the end of the current reporting
          interval.

          If the value of the {{param|EncodingType}} parameter is modified any
          outstanding failed reports are deleted.

          If the CPE cannot retain the number of failed reports from previous
          reporting intervals while transmitting the report of the current
          reporting interval, then the oldest failed reports are deleted until
          the CPE is able to transmit the report from the current reporting
          interval.

          A value of 0 indicates that failed reports are not to be retained for
          transmission in the next reporting interval.

          A value of -1 indicates that the CPE will retain as many failed
          reports as possible.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
          </int>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="Protocol" access="readWrite">
        <description>
          The Bulk Data Protocol being used for this collection profile.
        </description>
        <syntax>
          <string>
            <enumerationRef targetParam="#.Protocols"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="EncodingType" access="readWrite">
        <description>
          The Bulk Data encoding type being used for this collection profile.
        </description>
        <syntax>
          <string>
            <enumerationRef targetParam="#.EncodingTypes"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ReportingInterval" access="readWrite">
        <description>
          The reporting interval in {{units}}. Each report is generated based
          on this interval and {{param|TimeReference}}.

          The CPE MAY reject a request to set {{param}} to less than
          {{param|#.MinReportingInterval}}.

          Reporting intervals MUST begin every {{param}} {{units}}.

          If {{param}} is changed while collection is enabled, the first
          reporting interval begins immediately.

          For example, if {{param}} is 86400 (a day) and if
          {{param|TimeReference}} is set to UTC midnight on some day (in the
          past, present, or future) then the CPE will generate (and transmit)
          its report at midnight every 24 hours.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="86400"/>
        </syntax>
      </parameter>

      <parameter name="TimeReference" access="readWrite">
        <description>
          An absolute time reference in UTC to determine when will be
          transmitted. Each reporting interval MUST complete at this reference
          time plus or minus an integer multiple of
          {{param|ReportingInterval}}, unless unable to due to higher
          prioritized operations.

          {{param}} is used only to set the "phase" of the reporting intervals.
          The actual value of {{param}} can be arbitrarily far into the past or
          future.

          If {{param}} is changed while collection of bulk data is enabled, the
          first reporting interval begins immediately.

          The Unknown Time value as defined in {{bibref|TR-106}} indicates that
          no particular time reference is specified. That is, the CPE MAY
          locally choose the time reference, and is required only to adhere to
          the specified reporting intervals.

          If absolute time is not available to the CPE, its reporting interval
          behavior MUST be the same as if the {{param}} parameter was set to
          the Unknown Time value.

          For example, if {{param|ReportingInterval}} is 86400 (a day) and if
          {{param}} is set to UTC midnight on some day (in the past, present,
          or future) then the CPE will generate (and transmit, if in a "ITPush"
          mode) its report at midnight every 24 hours.

          Note that, if {{param}} is set to a time other than the Unknown Time,
          the first reporting interval (which has to begin immediately) will
          almost certainly be shorter than {{param|ReportingInterval}}). This
          is why {{param}} is defined in terms of when reporting intervals
          complete rather than start.
        </description>
        <syntax>
          <dateTime/>
          <default type="object" value="0001-01-01T00:00:00Z"/>
        </syntax>
      </parameter>

      <parameter name="ParameterNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="StreamingHost" access="readWrite">
        <description>
          This is the host name or IP Address of the IPDR Collector to be used
          by the CPE to stream bulk data records if this collection profile is
          configured for the IPDR Streaming Protocol {{bibref|IPDR-SP}} (the
          {{param|Protocol}} parameter has a value of
          {{enum|Streaming|#.Protocols}}).
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="StreamingPort" access="readWrite">
        <description>
          This is the port number of the IPDR Collector to be used by the CPE
          to stream bulk data records if this collection profile is configured
          for the IPDR Streaming Protocol {{bibref|IPDR-SP}} (the
          {{param|Protocol}} parameter has a value of
          {{enum|Streaming|#.Protocols}}).
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
          <default type="object" value="4737"/>
        </syntax>
      </parameter>

      <parameter name="StreamingSessionID" access="readWrite">
        <description>
          This is the unique identification of an IPDR Session to be used when
          this collection profile is configured for the IPDR Streaming Protocol
          {{bibref|IPDR-SP}} (the {{param|Protocol}} parameter has a value of
          {{enum|Streaming|#.Protocols}}).

          A Controller MUST NOT configure multiple IPDR Streaming Protocol
          collection profiles with the same {{param}}. Doing so MUST cause the
          CPE to fail the SetParameterValues.

          Within the IPDR Streaming Protocol specification the Session ID has a
          type of a single 'char', but we are restricting the range even
          further (ASCII values of '0' - '9' and 'A' - 'Z'.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="48" maxInclusive="57"/>
            <range minInclusive="65" maxInclusive="90"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="FileTransferURL" access="readWrite">
        <description>
          This is the {{datatype}} within the CPE that is used by an IPDR
          Collector to retrieve the IPDRDocs when this collection profile is
          configured for the IPDR File Transfer Protocol {{bibref|IPDR-FTP}}
          (the {{param|Protocol}} parameter has a value of
          {{enum|File|#.Protocols}}).
        </description>
        <syntax>
          <dataType ref="URL"/>
        </syntax>
      </parameter>

      <parameter name="FileTransferUsername" access="readWrite">
        <description>
          Username used for authentication of the {{param|FileTransferURL}}.

          This is the {{param}} that the IPDR Collector uses to access the CPE
          when this collection profile is configured for the IPDR File Transfer
          Protocol {{bibref|IPDR-FTP}} (the {{param|Protocol}} parameter has a
          value of {{enum|File|#.Protocols}}).
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="FileTransferPassword" access="readWrite">
        <description>
          Password used for authentication of the {{param|FileTransferURL}}.

          This is the {{param}} that the IPDR Collector uses to access the CPE
          when this collection profile is configured for the IPDR File Transfer
          Protocol {{bibref|IPDR-FTP}} (the {{param|Protocol}} parameter has a
          value of {{enum|File|#.Protocols}}).
        </description>
        <syntax hidden="true">
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ControlFileFormat" access="readWrite">
        <description>
          If this collection profile is configured for the IPDR File Transfer
          Protocol {{bibref|IPDR-FTP}} (the {{param|Protocol}} parameter has a
          value of {{enum|File|#.Protocols}}) then the control file names will
          be of the following format:

          :
            &lt;ControlFilePrefix&gt;_&lt;ControlFilePolicy&gt;.&lt;ControlFileSuffix&gt;

          Where the following rules apply:

          * ControlFilePrefix MUST NOT contain an underscore '_' or any other
            character not suitable for a file name.

          * ControlFilePolicy MUST contain one or more 'N' characters, where
            the number of 'N' characters denotes the number of digits in the
            sequence number, including leading zeros as necessary to match the
            number of 'N' characters.

          * ControlFileSuffix is a file extension.

          For example, BulkData_NNNN.log where "BulkData" would be the prefix,
          "NNNN" would be the policy, and "log" would be the suffix. Files
          adhering to this file format would look like: BulkData_0000.log,
          BulkData_0001.log, etc.
        </description>
        <syntax>
          <string>
            <size maxLength="128"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.BulkData.Profile.{i}.Parameter.{i}."
        access="readWrite" numEntriesParameter="ParameterNumberOfEntries"
        minEntries="0" maxEntries="unbounded" dmr:noUniqueKeys="true"
        version="2.5">
      <description>
        Bulk data parameter table.

        Each entry in this table represents a parameter (or set of parameters
        if a partial path is provided) to be either collected and reported, or
        omitted if {{param|Exclude}} is {{true}}.
      </description>

      <parameter name="Name" access="readWrite" version="2.10">
        <description>
          Name of the parameter in the report body.

          If the value of this parameter is {{empty}}, then the value of the
          {{param|Reference}} parameter is used as the name.

          When the value {{param|Reference}} parameter contains wildcards
          and/or partial parameter names, the rules for determining the value
          of this parameter are specified in {{template|BULK-DATA-WILD-REF}}.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Reference" access="readWrite">
        <description>
          Represents the parameter(s) that are part of this Bulk Data
          collection profile. The value MUST be a path name of a parameter or
          an object.

          When the {{param|##.ParameterWildCardSupported}} parameter has a
          value of {{true}}, patterns for instance identifiers are permitted
          with wildcards (an "*" character) in place of instance identifiers;
          any attempt to set the value otherwise MUST be rejected by the CPE.

          In the case where an Object Path is specified, the sub-objects of the
          resolved pattern and contained parameters will be part of the bulk
          data collected and reported. If the path name refers to an object
          then it MUST end with a '.'.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Exclude" access="readWrite" version="2.16">
        <description>
          When {{true}}, the entry is to be excluded from the report.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.BulkData.Profile.{i}.CSVEncoding." access="readOnly"
        minEntries="1" maxEntries="1" version="2.10">
      <description>
        This object defines the properties to be used when the
        {{object|##.Profile}} object's {{param|#.EncodingType}} parameter value
        is {{enum|CSV|##.EncodingTypes}}.
      </description>

      <parameter name="FieldSeparator" access="readWrite">
        <description>
          Field separator to use when encoding CSV data.
        </description>
        <syntax>
          <string/>
          <default type="object" value=","/>
        </syntax>
      </parameter>

      <parameter name="RowSeparator" access="readWrite">
        <description>
          Row separator to use when encoding CSV data.
        </description>
        <syntax>
          <string/>
          <default type="object" value=" "/>
        </syntax>
      </parameter>

      <parameter name="EscapeCharacter" access="readWrite">
        <description>
          Escape character to use when encoding CSV data.
        </description>
        <syntax>
          <string/>
          <default type="object" value="&quot;"/>
        </syntax>
      </parameter>

      <parameter name="ReportFormat" access="readWrite">
        <description>
          This parameter describes the formatting used for reports defined by
          this profile as described in {{template|BULK-DATA-CSV-REF}}.

          Note: This parameter is encoded as a token in the BBF-Report-Format
          header field and MUST NOT include spaces or other characters excluded
          from token characters defined in {{bibref|RFC2616}}.
        </description>
        <syntax>
          <string>
            <enumeration value="ParameterPerRow">
              <description>
                Reports are formatted with each parameter formatted as a row
                entry.
              </description>
            </enumeration>
            <enumeration value="ParameterPerColumn">
              <description>
                Reports are formatted with each parameter formatted as a column
                entry.
              </description>
            </enumeration>
          </string>
          <default type="object" value="ParameterPerColumn"/>
        </syntax>
      </parameter>

      <parameter name="RowTimestamp" access="readWrite">
        <description>
          The format of the timestamp to use for data inserted into the row.
        </description>
        <syntax>
          <string>
            <enumeration value="Unix-Epoch">
              <description>
                Timestamp is inserted using the UNIX epoch time (milliseconds
                since Jan 1, 1970 UTC) timestamp format. If the CPE is unable
                to acquire a time, then the time that has elapsed since the
                last reboot of the device is used.
              </description>
            </enumeration>
            <enumeration value="ISO-8601">
              <description>
                Timestamp is inserted using the ISO-8601 timestamp
                format{{template|BULK-DATA-TIMESTAMP}}.
              </description>
            </enumeration>
            <enumeration value="None">
              <description>Timestamp is not inserted in the row.</description>
            </enumeration>
          </string>
          <default type="object" value="Unix-Epoch"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.BulkData.Profile.{i}.JSONEncoding." access="readOnly"
        minEntries="1" maxEntries="1" version="2.10">
      <description>
        This object defines the properties to be used when the
        {{object|##.Profile}} object's {{param|#.EncodingType}} parameter value
        is {{enum|JSON|##.EncodingTypes}}.
      </description>

      <parameter name="ReportFormat" access="readWrite">
        <description>
          This parameter describes the formatting used for the report as
          described in {{template|BULK-DATA-JSON-REF}}.

          Note: This parameter is encoded as a token in the BBF-Report-Format
          header field and MUST NOT include spaces or other characters excluded
          from token characters defined in {{bibref|RFC2616}}.
        </description>
        <syntax>
          <string>
            <enumeration value="ObjectHierarchy">
              <description>
                Reports are formatted with each object in the object hierarchy
                of the data model encoded as a corresponding hierarchy of JSON
                Objects with the parameters of the object specified as
                name/value pairs of the JSON Object.
              </description>
            </enumeration>
            <enumeration value="NameValuePair">
              <description>
                Reports are formatted with each parameter of the data model
                encoded as a corresponding array of JSON Objects with the
                parameters specified as name/value pairs.
              </description>
            </enumeration>
          </string>
          <default type="object" value="ObjectHierarchy"/>
        </syntax>
      </parameter>

      <parameter name="ReportTimestamp" access="readWrite">
        <description>
          The format of timestamp to use for the JSON Object named
          "CollectionTime" as described in {{template|BULK-DATA-JSON-REF}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Unix-Epoch">
              <description>
                Timestamp is inserted using the UNIX epoch time (milliseconds
                since Jan 1, 1970 UTC) timestamp format. If the CPE is unable
                to acquire a time, then the time that has elapsed since the
                last reboot of the device is used.
              </description>
            </enumeration>
            <enumeration value="ISO-8601">
              <description>
                Timestamp is inserted using the ISO-8601 timestamp
                format{{template|BULK-DATA-TIMESTAMP}}.
              </description>
            </enumeration>
            <enumeration value="None">
              <description>Timestamp is not inserted.</description>
            </enumeration>
          </string>
          <default type="object" value="Unix-Epoch"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.BulkData.Profile.{i}.HTTP." access="readOnly"
        minEntries="1" maxEntries="1" version="2.10">
      <description>
        This object defines the properties to be used when transporting bulk
        data using the HTTP/HTTPS protocol. This object is used when the
        {{param|#.Protocol}} parameter has a value of
        {{enum|HTTP|##.Protocols}}. For authentication purposes the CPE MUST
        support HTTP Basic and Digest Access Authentication as defined in
        {{bibref|RFC7617}} and {{bibref|RFC7616}}.
      </description>

      <parameter name="URL" access="readWrite">
        <description>
          The {{datatype}} for the collection server to receive the Bulk Data
          transmitted by the CPE.
        </description>
        <syntax>
          <dataType ref="URL"/>
        </syntax>
      </parameter>

      <parameter name="Username" access="readWrite">
        <description>
          Username used to authenticate the CPE when making a connection to the
          collection server.
        </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
          collection server.
        </description>
        <syntax secured="true">
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="CompressionsSupported" access="readOnly">
        <description>
          Indicates the HTTP Compression mechanism(s) supported by this CPE for
          the purposes of transferring bulk data.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="GZIP">
              <description>
                As defined in {{bibref|RFC2616|Section 3.5}}
              </description>
            </enumeration>
            <enumeration value="Compress">
              <description>
                As defined in {{bibref|RFC2616|Section 3.5}}
              </description>
            </enumeration>
            <enumeration value="Deflate">
              <description>
                As defined in {{bibref|RFC2616|Section 3.5}}
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="Compression" access="readWrite">
        <description>
          The value of this parameter represents the HTTP Compression mechanism
          to be used by the CPE when transferring data to the collection
          server.
        </description>
        <syntax>
          <string>
            <enumerationRef targetParam="CompressionsSupported"
                nullValue="None"/>
          </string>
          <default type="object" value="None"/>
        </syntax>
      </parameter>

      <parameter name="MethodsSupported" access="readOnly">
        <description>
          Indicates the HTTP method(s) supported by this CPE for the purposes
          of transferring bulk data.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="POST">
              <description>
                As defined in {{bibref|RFC2616|Section 9.5}}
              </description>
            </enumeration>
            <enumeration value="PUT">
              <description>
                As defined in {{bibref|RFC2616|Section 9.6}}
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="Method" access="readWrite">
        <description>
          The value of this parameter represents the HTTP method to be used by
          the CPE when transferring data to the collection server.
        </description>
        <syntax>
          <string>
            <enumerationRef targetParam="MethodsSupported"/>
          </string>
          <default type="object" value="POST"/>
        </syntax>
      </parameter>

      <parameter name="UseDateHeader" access="readWrite">
        <description>
          When {{true}}, the CPE encodes the HTTP Date Header
          {{bibref|RFC2616|Section 14.18}} in the HTTP client request.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="true"/>
        </syntax>
      </parameter>

      <parameter name="RetryEnable" access="readWrite">
        <description>
          When {{true}}, the CPE retries unsuccessful attempts to transfer
          data.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="RetryMinimumWaitInterval" access="readWrite">
        <description>
          Configures the data transfer retry wait interval, in seconds, as
          specified in {{template|BULK-DATA-HTTP-RETRY-REF}}.

          The device MUST use a random value between {{param}} and ({{param}} *
          {{param|RetryIntervalMultiplier}} / 1000) as the first retry wait
          interval. Other values in the retry pattern MUST be calculated using
          this value as a starting point.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="65535"/>
          </unsignedInt>
          <default type="object" value="5"/>
        </syntax>
      </parameter>

      <parameter name="RetryIntervalMultiplier" access="readWrite">
        <description>
          Configures the retry interval multiplier as specified in
          {{template|BULK-DATA-HTTP-RETRY-REF}}.

          This value is expressed in units of 0.001. Hence the values of the
          multiplier range between 1.000 and 65.535.

          The device MUST use a random value between
          {{param|RetryMinimumWaitInterval}} and
          ({{param|RetryMinimumWaitInterval}} * {{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>
          <default type="object" value="2000"/>
        </syntax>
      </parameter>

      <parameter name="RequestURIParameterNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PersistAcrossReboot" access="readWrite" version="2.12">
        <description>
          Determines whether or not data transfers that have failed are
          required to be persisted across reboots.

          If {{param}} is {{true}}, then failed data transfers MUST be
          persisted across reboots.

          If {{param}} is {{false}}, then failed data transfers are not
          required to be persisted across reboots.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.BulkData.Profile.{i}.HTTP.RequestURIParameter.{i}."
        access="readWrite"
        numEntriesParameter="RequestURIParameterNumberOfEntries" minEntries="0"
        maxEntries="unbounded" dmr:noUniqueKeys="true" version="2.10">
      <description>
        This object represents an instance of a parameter to be used in the
        report header used as part of the HTTP Request-URI transmitted by the
        CPE to the collection server using the Request-URI in addition to the
        parameters required by {{template|BULK-DATA-HTTP-QUERY-REF}}.
      </description>

      <parameter name="Name" access="readWrite">
        <description>
          Name of the Request-URI parameter.

          If {{param}} is {{empty}}, the name of the Request-URI parameter is
          the value of {{param|Reference}}.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Reference" access="readWrite">
        <description>
          The value MUST be the path name of a parameter to be used as the
          Request-URI parameter.

          If the value of this parameter is empty, then this object is not
          encoded in the report header.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.BulkData.Profile.{i}.MQTT." access="readOnly"
        minEntries="1" maxEntries="1" version="2.15">
      <description>
        This object defines the properties to be used when transporting bulk
        data using the MQTT protocol. This object is used when the
        {{param|#.Protocol}} parameter has a value of
        {{enum|MQTT|##.Protocols}}.
      </description>

      <parameter name="Reference" access="readWrite">
        <description>
          A reference to the MQTT Client used by this Bulk Data Collection
          Profile when communicating via the MQTT Protocol.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="###.MQTT.Client."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="PublishTopic" access="readWrite">
        <description>
          The topic name the Agent MUST use when sending the Bulk Data report.
        </description>
        <syntax>
          <string>
            <size maxLength="65535"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="PublishQoS" access="readWrite">
        <description>
          The Agent MUST use this QoS value when sending the Bulk Data report.

          If the referenced MQTT Client uses MQTT 5.0 and the MQTT server only
          indicates support for a QoS value in the CONNACK Maximum QoS property
          lower than this QoS value, the Agent MUST use the highest QoS value
          that is supported by the server.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="2"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="PublishRetain" access="readWrite">
        <description>
          If set to {{true}} the Agent MUST set the RETAIN flag in MQTT PUBLISH
          messages carrying the Bulk Data report to 1, unless the MQTT server
          sent Retain Available = 0 (MQTT 5.0) in its CONNACK (in which case,
          the Agent MUST set the RETAIN flag to 0).
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.SoftwareModules." access="readOnly" minEntries="1"
        maxEntries="1" version="2.1">
      <description>
        Top level object for dynamically managed software applications.

        Since Device:2.15, the Software Module data model has undergone
        significant enhancements, particularly in expanding support for new
        concepts, e.g. {{object|ExecEnvClass.{i}.}},
        {{object|ExecEnv.{i}.ApplicationData.{i}.}},
        {{object|ExecutionUnit.{i}.AutoRestart.}},
        {{object|ExecutionUnit.{i}.NetworkConfig.}},
        {{object|ExecutionUnit.{i}.HostObject.{i}}}, and
        {{object|ExecutionUnit.{i}.EnvVariable.{i}.}}.

        However, the CWMP protocol lacks native capabilities to dynamically
        manage these new concepts. At best, CWMP can be used to view the
        available configurations. For more dynamic and interactive management
        of these concepts, the USP protocol should be utilized.
      </description>

      <parameter name="ExecEnvClassNumberOfEntries" access="readOnly"
          version="2.16">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ExecEnvNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="DeploymentUnitNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ExecutionUnitNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.SoftwareModules.ExecEnvClass.{i}." access="readOnly"
        numEntriesParameter="ExecEnvClassNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.16">
      <description>
        This table lists the kinds of Execution Environments which are
        available in this device. Rows in this table may possibly be be added,
        modified, or removed by as a result of respectively installing,
        updating, or removing a {{object|#.DeploymentUnit}}.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="Vendor"/>
        <parameter ref="Name"/>
        <parameter ref="Version"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.16">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name" access="readOnly">
        <description>
          The Name of this {{object}} as specified by the Vendor that
          implemented this {{object}}.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Vendor" access="readOnly">
        <description>
          The author of this {{object}} formatted as a fully qualified domain
          name.
        </description>
        <syntax>
          <string>
            <size maxLength="128"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Version" access="readOnly">
        <description>
          The Version of this {{object}} as specified by the Vendor that
          implemented this {{object}}. Vendors are encouraged to use Semantic
          Versioning.
        </description>
        <syntax>
          <string>
            <size maxLength="32"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="DeploymentUnitRef" access="readOnly">
        <description>
          A reference to the DeploymentUnit (if any) by which this {{object}}
          was created.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="#.DeploymentUnit."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="CapabilityNumberOfEntries" access="readOnly"
          version="2.16">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.SoftwareModules.ExecEnvClass.{i}.Capability.{i}."
        numEntriesParameter="CapabilityNumberOfEntries" access="readOnly"
        minEntries="0" maxEntries="unbounded" version="2.16">
      <description>
        The standard(s) describing the kinds of {{object|##.DeploymentUnit}}
        which can be installed into instances of this {{object|#}}.
      </description>
      <uniqueKey functional="true">
        <parameter ref="Specification"/>
        <parameter ref="SpecificationVersion"/>
      </uniqueKey>

      <parameter name="Specification" access="readOnly">
        <description>
          The specification which describes the format of the
          {{object|##.DeploymentUnit}}.
        </description>
        <syntax>
          <string>
            <enumeration value="OCIImage" optional="true"/>
            <enumeration value="VMRawImage" optional="true"/>
            <enumeration value="OSGiBundle" optional="true"/>
            <enumeration value="JAR" optional="true"/>
            <enumeration value="WAR" optional="true"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SpecificationVersion" access="readOnly">
        <description>
          The Version of the Specification which is supported by this
          {{object|#}}.

          If this parameter begins with the character "(" or "[" then it MUST
          end with the character ")" or "]" and it indicates a version range
          which may be interpreted following Semantic Versioning rules.
          Otherwise it indicates the latest version of the specification which
          is known to be supported by this {{object|#}}.
        </description>
        <syntax>
          <string>
            <size maxLength="32"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SpecificationURI" access="readOnly">
        <description>
          The URI where of the definition of the Specification may be found.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.SoftwareModules.ExecEnv.{i}." access="readOnly"
        numEntriesParameter="ExecEnvNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.1">
      <description>
        The Execution Environments that are available on the device, along with
        their properties and configurable settings.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Name"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Indicates whether or not this {{object}} is enabled.

          Disabling an enabled Execution Environment stops it, while enabling a
          disabled Execution Environment starts it.

          When an Execution Environment is disabled, Deployment Units installed
          to that Execution Environment will be unaffected, but any Execution
          Units currently running on that Execution Environment will
          automatically transition to {{enum|Idle|#.ExecutionUnit.{i}.Status}}.

          If a ChangeDUState is attempted on a {{object|#.DeploymentUnit}} that
          is to be applied against a disabled {{object}}, that ChangeDUState
          operation fails and the associated DUStateChangeComplete RPC will
          contain a FaultStruct for that operation.

          If a SetParameterValues is attempted against the
          {{param|#.ExecutionUnit.{i}.RequestedState}} for an
          {{object|#.ExecutionUnit}} that is associated with a disabled
          {{object}} a CWMP Fault will be issued in response.

          Disabling an Execution Environment could place the device in a
          non-manageable state. For example, if the operating system itself was
          modeled as an {{object}} and the ACS disabled it, the CWMP management
          agent might be terminated leaving the device unmanageable.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          Indicates the status of this {{object}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Up"/>
            <enumeration value="Error" optional="true"/>
            <enumeration value="Disabled"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Reset" access="readWrite"
          dmr:previousParameter="Status">
        <description>
          Setting this parameter to {{true}} causes this {{object}} to revert
          back to the state it was in when the device last issued a "0
          BOOTSTRAP" Inform event. The following requirements dictate what MUST
          happen for the reset to be complete:

          # All Deployment Units that were installed after the last "0
            BOOTSTRAP" Inform event MUST be removed

          # All persistent storage, configuration files, and log files that
            were associated with the removed Deployment Units MUST be removed

          # Any Deployment Unit that is still installed against the Execution
            Environment MUST be restored to the version present when the last
            "0 BOOTSTRAP" Inform event was issued

          # Any Deployment Unit that was present when the last "0 BOOTSTRAP"
            Inform event was issued, but was subsequently uninstalled and is
            now not present, MUST be installed with the version that was
            present when the last "0 BOOTSTRAP" Inform event was issued

          # The Execution Environment MUST be restored to the version and
            configuration present when the last "0 BOOTSTRAP" Inform event was
            issued

          # The Execution Environment MUST be restarted after all other
            restoration requirements have been met
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Alias" access="readWrite" version="2.1">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name" access="readOnly">
        <description>
          A Name provided by the device that adequately distinguishes this
          {{object}} from all other {{object}} instances.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Type" access="readOnly">
        <description>
          Indicates the complete type and specification version of this
          {{object}}.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="InitialRunLevel" access="readWrite">
        <description>
          The run level that this {{object}} will be in upon startup (whether
          that is caused by a device Boot or the Execution Environment
          starting).

          Run levels dictate which Execution Units will be started. Execution
          Units will be started if {{param|CurrentRunLevel}} is greater than or
          equal to {{param|#.ExecutionUnit.{i}.RunLevel}} and
          {{param|#.ExecutionUnit.{i}.AutoStart}} is {{true}}.

          If the value of {{param|CurrentRunLevel}} is -1, then the value of
          this parameter is irrelevant when read and setting its value has no
          impact on the Run Level of this {{object}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RequestedRunLevel" access="readWrite"
          dmr:previousParameter="InitialRunLevel">
        <description>
          Provides a mechanism to remotely manipulate the run level of this
          {{object}}, meaning that altering this parameter's value will change
          the value of the {{param|CurrentRunLevel}}.

          Run levels dictate which Execution Units will be started. Execution
          Units will be started if {{param|CurrentRunLevel}} is greater than or
          equal to {{param|#.ExecutionUnit.{i}.RunLevel}} and
          {{param|#.ExecutionUnit.{i}.AutoStart}} is {{true}}.

          Setting this value when {{param|CurrentRunLevel}} is -1 has no impact
          to the Run Level of this {{object}}.
        </description>
        <syntax command="true">
          <int>
            <range minInclusive="-1" maxInclusive="65535"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="CurrentRunLevel" access="readOnly">
        <description>
          The run level that this {{object}} is currently operating in. This
          value is altered by changing the {{param|RequestedRunLevel}}
          parameter.

          Upon startup (whether that is caused by a CPE Boot or the Execution
          Environment starting) {{param}} will be equal to
          {{param|InitialRunLevel}}, unless Run Levels are not supported by
          this {{object}} in which case {{param}} will be -1.

          Run levels dictate which Execution Units will be started. Execution
          Units will be started if {{param}} is greater than or equal to
          {{param|#.ExecutionUnit.{i}.RunLevel}} and
          {{param|#.ExecutionUnit.{i}.AutoStart}} is {{true}}.

          If {{param}} is -1 then Run Levels are not supported by this
          {{object}} and setting {{param|InitialRunLevel}} or
          {{param|RequestedRunLevel}} will not impact the Run Level of this
          {{object}}.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="65535"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="InitialExecutionUnitRunLevel" access="readWrite"
          version="2.4">
        <description>
          Indicates the initial value on creation for
          {{param|#.ExecutionUnit.{i}.RunLevel}} for all Execution Unit
          instances associated with this {{object}}.

          If the value of {{param|CurrentRunLevel}} is -1, then the value of
          this parameter is irrelevant when read and setting its value has no
          impact on the Run Level of any Execution Unit.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="65535"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="Vendor" access="readOnly">
        <description>
          The vendor that produced this {{object}}.
        </description>
        <syntax>
          <string>
            <size maxLength="128"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Version" access="readOnly">
        <description>
          The Version of this {{object}} as specified by the Vendor that
          implemented this {{object}}, not the version of the specification.
        </description>
        <syntax>
          <string>
            <size maxLength="32"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ParentExecEnv" access="readOnly">
        <description>
          Represents the parent {{object}} of this {{object}}.

          If this value is {{empty}} then this is the Primary Execution
          Environment.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="#.ExecEnv."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="AllocatedDiskSpace" access="readOnly">
        <description>
          The amount of disk space measured in {{units}} allocated to this
          ExecEnv. A value of -1 indicates that this parameter is not
          applicable.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
            <units value="KiB"/>
          </int>
          <default type="implementation" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="AllocatedMemory" access="readOnly">
        <description>
          The amount of physical RAM measured in {{units}} allocated to this
          ExecEnv. A value of -1 indicates that this parameter is not
          applicable.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
            <units value="KiB"/>
          </int>
          <default type="implementation" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="AllocatedCPUPercent" access="readOnly" version="2.16">
        <description>
          The percentage of CPU time allocated to this ExecEnv, i.e. the
          percentage of the whole CPU (all cores) which is available to the
          parent ExecEnv (the primary firmware "owns" 100{{units}} of CPU). A
          value of -1 indicates that this parameter is not applicable.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="100"/>
            <units value="%"/>
          </int>
          <default type="implementation" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="AvailableDiskSpace" access="readOnly"
          activeNotify="canDeny">
        <description>
          The amount of disk space measured in {{units}} currently available to
          this {{object}}. This value changes as the {{object|#.ExecutionUnit}}
          instances associated with this {{object}} consumes disk space. A
          value of -1 MUST be used for {{object}} instances where this
          parameter is not applicable.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
            <units value="KiB"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="AvailableMemory" access="readOnly"
          activeNotify="canDeny">
        <description>
          The amount of physical RAM measured in {{units}} currently available
          to this {{object}}. This value changes as the
          {{object|#.ExecutionUnit}} instances associated with this {{object}}
          are started/stopped and consume the physical RAM. A value of -1 MUST
          be used for {{object}} instances where this parameter is not
          applicable.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
            <units value="KiB"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="AvailableCPUPercent" access="readOnly" version="2.16">
        <description>
          The fraction (in {{units}}) of CPU time currently available to this
          {{object}}. This value changes as the {{object|#.ExecutionUnit}}
          instances associated with this {{object}} are started/stopped and
          consume the CPU. A value of -1 MUST be used for {{object}} instances
          where this parameter is not applicable.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="100"/>
            <units value="%"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="ActiveExecutionUnits" access="readOnly"
          activeNotify="canDeny">
        <description>
          Represents the {{object|#.ExecutionUnit}} instances currently running
          on this {{object}}. This parameter only contains
          {{object|#.ExecutionUnit}} instances that currently have a
          {{param|#.ExecutionUnit.{i}.Status}} of
          {{enum|Active|#.ExecutionUnit.{i}.Status}}.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetParent="#.ExecutionUnit."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ProcessorRefList" access="readOnly" status="deprecated">
        <description>
          Represents the processors that this {{object}} has available to it.

          {{deprecated|2.18|because the referenced
          object,{{object|##.DeviceInfo.Processor.}}, is deprecated.}}
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetParent="##.DeviceInfo.Processor."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="CreatedAt" access="readOnly" version="2.16">
        <description>
          The time and date at which this {{object}} was created. If the
          {{object}} is provided by the primary firmware of the device then
          this parameter SHOULD be set to {{null}}.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="ExecEnvClassRef" access="readOnly" version="2.16">
        <description>
          The {{object|#.ExecEnvClass}} of which this {{object}} is an
          instance.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="#.ExecEnvClass."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ApplicationDataNumberOfEntries" access="readOnly"
          version="2.16">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.SoftwareModules.ExecEnv.{i}.ApplicationData.{i}."
        minEntries="0" maxEntries="unbounded" access="readOnly" version="2.16"
        numEntriesParameter="ApplicationDataNumberOfEntries">
      <description>
        The ApplicationData volumes which currently exist within this ExecEnv.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="ApplicationUUID"/>
        <parameter ref="Name"/>
      </uniqueKey>

      <parameter name="Name" access="readOnly">
        <description>
          A name which is assigned to the ApplicationData instance at the time
          of its creation, which distinguishes it from any other application
          data volumes owned by the same application.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Capacity" access="readOnly">
        <description>
          Storage capacity of the volume, in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="MiB"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Encrypted" access="readOnly">
        <description>
          Whether the data is stored on an encrypted medium.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Retain" access="readOnly">
        <description>
          The level of persistency of the volume.
        </description>
        <syntax>
          <string>
            <enumeration value="UntilStopped"/>
            <enumeration value="Forever"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="AccessPath" access="readOnly">
        <description>
          The path by which the Execution Units created by the Deployment Unit
          may access the storage volume.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Alias" access="readWrite" version="2.16">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="ApplicationUUID" access="readOnly">
        <description>
          The {{param|##.DeploymentUnit.{i}.UUID}} of the
          {{object|##.DeploymentUnit}} for which this volume was created. This
          parameter retains its value so long as the {{object}} instance
          continues to exist, even if the {{object|##.DeploymentUnit}} is not
          currently installed.
        </description>
        <syntax>
          <dataType ref="UUID"/>
        </syntax>
      </parameter>

      <parameter name="Utilization" access="readOnly" activeNotify="canDeny">
        <description>
          The amount of data which is currently stored in this volume, in
          {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="MiB"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.SoftwareModules.DeploymentUnit.{i}."
        access="readOnly" numEntriesParameter="DeploymentUnitNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.1">
      <description>
        This table serves as the Deployment Unit inventory and contains status
        information about each Deployment Unit.

        A new instance of this table gets created during the installation of a
        Software Module.
      </description>
      <uniqueKey functional="true">
        <parameter ref="UUID"/>
        <parameter ref="Version"/>
        <parameter ref="ExecutionEnvRef"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="UUID" access="readOnly">
        <description>
          A Universally Unique Identifier either provided by the Controller, or
          generated by the device, at the time of Deployment Unit Installation.

          The format of this value is defined by {{bibref|RFC4122}} Version 5
          (Name-Based) and {{bibref|TR-181i2|Annex C}}.

          This value MUST NOT be altered when the {{object}} is updated.
        </description>
        <syntax>
          <dataType ref="UUID"/>
        </syntax>
      </parameter>

      <parameter name="DUID" access="readOnly">
        <description>
          Deployment Unit Identifier chosen by the targeted
          {{object|#.ExecEnv}}. The format of this value is Execution
          Environment specific.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Alias" access="readWrite" version="2.1">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name" access="readOnly">
        <description>
          Indicates the Name of this {{object}}, which is chosen by the author
          of the Deployment Unit.

          The value of this parameter is used in the generation of the
          {{param|UUID}} based on the rules defined in {{bibref|TR-181i2|Annex
          C}}.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly" activeNotify="canDeny">
        <description>
          Indicates the status of this {{object}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Installing">
              <description>
                This instance is in the process of being Installed and SHOULD
                transition to the {{enum|Installed}} state.
              </description>
            </enumeration>
            <enumeration value="Installed">
              <description>
                This instance has been successfully Installed. The
                {{param|Resolved}} flag SHOULD also be referenced for
                dependency resolution.
              </description>
            </enumeration>
            <enumeration value="Updating">
              <description>
                This instance is in the process of being Updated and SHOULD
                transition to the {{enum|Installed}} state.
              </description>
            </enumeration>
            <enumeration value="Uninstalling">
              <description>
                This instance is in the process of being Uninstalled and SHOULD
                transition to the {{enum|Uninstalled}} state.
              </description>
            </enumeration>
            <enumeration value="Uninstalled">
              <description>
                This instance has been successfully Uninstalled. This status
                will typically not be seen within a {{object}} instance.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="Resolved" access="readOnly">
        <description>
          Indicates whether or not this {{object}} has resolved all of its
          dependencies.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="URL" access="readOnly">
        <description>
          Contains the {{datatype}} used by the most recent ChangeDUState RPC
          to either Install or Update this {{object}}.
        </description>
        <syntax>
          <dataType ref="URL"/>
        </syntax>
      </parameter>

      <parameter name="Description" access="readOnly">
        <description>
          Textual description of this {{object}}. The format of this value is
          Execution Environment specific.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Vendor" access="readOnly">
        <description>
          The author of this {{object}} formatted as a domain name.

          The value of this parameter is used in the generation of the
          {{param|UUID}} based on the rules defined in {{bibref|TR-181i2|Annex
          C}}.
        </description>
        <syntax>
          <string>
            <size maxLength="128"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Version" access="readOnly">
        <description>
          Version of this {{object}}. The format of this value is Execution
          Environment specific.
        </description>
        <syntax>
          <string>
            <size maxLength="32"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="VendorLogList" access="readOnly">
        <description>
          Represents the vendor log files that have come into existence because
          of this {{object}}.

          This does not include any vendor log files that have come into
          existence because of {{object|#.ExecutionUnit}} instances that are
          contained within this {{object}}.

          When this {{object}} is uninstalled the vendor log files referenced
          here SHOULD be removed from the device.

          Not all {{object}} instances will actually have a corresponding
          vendor log file, in which case the value of this parameter will be
          {{empty}}.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong"
                targetParent="##.DeviceInfo.VendorLogFile." targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="VendorConfigList" access="readOnly">
        <description>
          Represents the vendor config files that have come into existence
          because of this {{object}}.

          This does not include any vendor config files that have come into
          existence because of {{object|#.ExecutionUnit}} instances that are
          contained within this {{object}}.

          When this {{object}} is uninstalled the vendor config files
          referenced here SHOULD be removed from the device.

          Not all {{object}} instances will actually have a corresponding
          vendor config file, in which case the value of this parameter will be
          {{empty}}.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong"
                targetParent="##.DeviceInfo.VendorConfigFile." targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ExecutionUnitList" access="readOnly">
        <description>
          Represents the {{object|#.ExecutionUnit}} instances that are
          associated with this {{object}} instance.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetParent="#.ExecutionUnit."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ExecutionEnvRef" access="readOnly">
        <description>
          Represents the {{object|#.ExecEnv}} instance where this {{object}}
          instance is installed.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="#.ExecEnv."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Installed" access="readOnly" version="2.16">
        <description>
          Documents when this {{object}} instance was installed.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="LastUpdate" access="readOnly" version="2.16">
        <description>
          Documents when this {{object}} instance was last updated.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.SoftwareModules.ExecutionUnit.{i}." access="readOnly"
        numEntriesParameter="ExecutionUnitNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.1">
      <description>
        This table serves as the Execution Unit inventory and contains both
        status information about each Execution Unit as well as configurable
        parameters for each Execution Unit.

        Each {{object|#.DeploymentUnit}} that is installed can have zero or
        more Execution Units.

        Once a Deployment Unit is installed it populates this table with its
        contained Execution Units.

        When the Deployment Unit (that caused this {{object}} to come into
        existence) is updated, this instance MAY be removed and new instances
        MAY come into existence. While the Deployment Unit (that caused this
        {{object}} to come into existence) is being updated, all {{object}}
        instances associated with the Deployment Unit will be stopped until the
        update is complete at which time they will be restored to the state
        that they were in before the update started.

        When the Deployment Unit (that caused this {{object}} to come into
        existence) is uninstalled, this instance is removed.

        Each {{object}} MAY also contain a set of vendor specific parameters
        displaying status and maintaining configuration that reside under the
        {{object|Extensions}} object.
      </description>
      <uniqueKey functional="true">
        <parameter ref="EUID"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="EUID" access="readOnly">
        <description>
          Execution Unit Identifier chosen by the {{object|#.ExecEnv}} during
          installation of the associated {{object|#.DeploymentUnit}}.

          The format of this value is Execution Environment specific, but it
          MUST be unique across {{object|#.ExecEnv}} instances. Thus, it is
          recommended that this be a combination of the
          {{param|#.ExecEnv.{i}.Name}} and an Execution Environment local
          unique value.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Alias" access="readWrite" version="2.1">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name" access="readOnly">
        <description>
          The name of this {{object}} as it pertains to its associated
          {{object|#.DeploymentUnit}}, which SHOULD be unique across all
          {{object}} instances contained within its associated
          {{object|#.DeploymentUnit}}.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ExecEnvLabel" access="readOnly">
        <description>
          The name of this {{object}} as provided by the {{object|#.ExecEnv}},
          which SHOULD be unique across all {{object}} instances contained
          within a specific {{object|#.ExecEnv}}.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly"
          activeNotify="forceDefaultEnabled">
        <description>
          Indicates the status of this {{object}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Idle">
              <description>
                This instance is in an Idle state and not running.
              </description>
            </enumeration>
            <enumeration value="Starting">
              <description>
                This instance is in the process of Starting and SHOULD
                transition to the {{enum|Active}} state.
              </description>
            </enumeration>
            <enumeration value="Active">
              <description>This instance is currently running.</description>
            </enumeration>
            <enumeration value="Stopping">
              <description>
                This instance is in the process of Stopping and SHOULD
                transition to the {{enum|Idle}} state.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="RequestedState" access="readWrite"
          dmr:previousParameter="Status">
        <description>
          Indicates the state transition that the ACS is requesting for this
          {{object}}. {{enum}}

          If this {{object}} is associated with an Execution Environment that
          is disabled and an attempt is made to alter this value, then a CWMP
          Fault MUST be generated.
        </description>
        <syntax command="true">
          <string>
            <enumeration value="Idle">
              <description>
                If this {{object}} is currently in {{enum|Starting|Status}} or
                {{enum|Active|Status}} the CPE will attempt to Stop the
                Execution Unit; otherwise this requested state is ignored.
              </description>
            </enumeration>
            <enumeration value="Active">
              <description>
                If this {{object}} is currently in {{enum|Idle|Status}} the CPE
                will attempt to Start the Execution Unit. If this {{object}} is
                in {{enum|Stopping|Status}} the request is rejected and a fault
                raised. Otherwise this requested state is ignored.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="ExecutionFaultCode" access="readOnly">
        <description>
          If while running or transitioning between states this {{object}}
          identifies a fault this parameter embodies the problem. The value of
          {{enum|NoFault}} MUST be used when everything is working as intended.
          {{enum}}

          For fault codes not included in this list, the vendor MAY include
          vendor-specific values, which MUST use the format defined in
          {{bibref|TR-106|Section 3.3}}.
        </description>
        <syntax>
          <string>
            <enumeration value="NoFault"/>
            <enumeration value="FailureOnStart"/>
            <enumeration value="FailureOnAutoStart"/>
            <enumeration value="FailureOnStop"/>
            <enumeration value="FailureWhileActive"/>
            <enumeration value="DependencyFailure"/>
            <enumeration value="UnStartable"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ExecutionFaultMessage" access="readOnly">
        <description>
          If while running or transitioning between states this {{object}}
          identifies a fault this parameter provides a more detailed
          explanation of the problem.

          If {{param|ExecutionFaultCode}} has the value of
          {{enum|NoFault|ExecutionFaultCode}} then the value of this parameter
          MUST be {{empty}} and ignored by the Controller.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="AutoStart" access="readWrite">
        <description>
          If {{true}} and the {{param|RunLevel}} verification is also met, then
          this {{object}} will be automatically started by the device after its
          {{object|#.ExecEnv}} is either rebooted or restarted.

          If {{false}} this {{object}} will not be started after its
          {{object|#.ExecEnv}} is either rebooted or restarted until it is
          explicitly commanded to do so by either the Controller or another
          Execution Unit.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="RunLevel" access="readWrite">
        <description>
          Determines when this {{object}} will be started.

          If {{param|AutoStart}} is {{true}} and
          {{param|#.ExecEnv.{i}.CurrentRunLevel}} is greater than or equal to
          {{param}}, then this {{object}} will be started.

          If the value of {{param|#.ExecEnv.{i}.CurrentRunLevel}} is -1, then
          the associated {{object|#.ExecEnv.}} doesn't support Run Levels, thus
          the value of this parameter is irrelevant when read and setting its
          value has no impact to the Run Level of this {{object}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Vendor" access="readOnly">
        <description>
          Vendor of this {{object}}.
        </description>
        <syntax>
          <string>
            <size maxLength="128"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Version" access="readOnly">
        <description>
          Version of the {{object}}. The format of this value is Execution
          Environment specific.
        </description>
        <syntax>
          <string>
            <size maxLength="32"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Description" access="readOnly">
        <description>
          Textual description of this {{object}}. The format of this value is
          Execution Environment specific.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Privileged" access="readOnly" version="2.19">
        <description>
          The Privileged mode for this {{object}}: {{true}} for Privileged,
          {{false}} for Unprivileged.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="AllocatedDiskSpace" access="readOnly" version="2.16">
        <description>
          The amount of disk space measured in {{units}} allocated to this
          {{object}}. A value of -1 MUST be used for {{object}} instances where
          this parameter is not applicable.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
            <units value="KiB"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="DiskSpaceInUse" access="readOnly"
          activeNotify="canDeny">
        <description>
          The amount of disk space measured in {{units}} currently being used
          by this {{object}}. A value of -1 MUST be used for {{object}}
          instances where this parameter is not applicable.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
            <units value="KiB"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="AllocatedMemory" access="readOnly" version="2.16">
        <description>
          The amount of physical RAM measured in {{units}} allocated to this
          {{object}}. A value of -1 MUST be used for {{object}} instances where
          this parameter is not applicable.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
            <units value="KiB"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="MemoryInUse" access="readOnly" activeNotify="canDeny">
        <description>
          The amount of physical RAM measured in {{units}} currently being used
          by this {{object}}. A value of -1 MUST be used for {{object}}
          instances where this parameter is not applicable.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
            <units value="KiB"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="AllocatedCPUPercent" access="readOnly" version="2.16">
        <description>
          The CPU power allocated to this {{object}}, as a fraction (in
          {{units}}) of the CPU allocation of the {{object|#.ExecEnv}} in which
          this {{object}} resides. A value of -1 MUST be used for {{object}}
          instances where this parameter is not applicable.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="100"/>
            <units value="%"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="CPUPercentInUse" access="readOnly" version="2.16">
        <description>
          The CPU power currently being used by this by this {{object}}, as a
          fraction (in {{units}}) of the CPU allocation of the
          {{object|#.ExecEnv}} in which this {{object}} resides. A value of -1
          MUST be used for {{object}} instances where this parameter is not
          applicable.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="100"/>
            <units value="%"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="AllocatedEUUID" access="readOnly" version="2.18">
        <description>
          This parameter is allocated by the host system. This is the user
          identifier within the execution unit's environment. This UID is local
          to the execution unit and is used by the EU's internal processes to
          manage permissions. By default, processes within the EU execute as
          root (UID 0) unless otherwise specified.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="AllocatedEUGID" access="readOnly" version="2.18">
        <description>
          This parameter is allocated by the host system. This is the group
          identifier within the execution unit's environment. This GID is local
          to the execution unit and is used by the EU's internal processes to
          manage permissions.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="AllocatedHostUID" access="readOnly" version="2.18">
        <description>
          This parameter is allocated by the host system. This is the user
          identifier on the host system where this EU is running. This UID is
          system wide and is managed by the kernel.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="AllocatedHostGID" access="readOnly" version="2.18">
        <description>
          This parameter is allocated by the host system. This is the group
          identifier on the host system where this EU is running. This GID is
          system wide and is managed by the kernel.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="CreationTime" access="readOnly" version="2.18">
        <description>
          The date and time when the EU was created.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="Uptime" access="readOnly" version="2.18">
        <description>
          The amount of time in {{units}} that this EU has been up and running
          since it was activated.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ShutdownDelay" access="readWrite" version="2.18">
        <description>
          The delay in {{units}} before which the container is shutdown. This
          delay ensures that the application has enough time to perform any
          cleanup before the Execution Unit transitions to idle state.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="implementation" value="10"/>
        </syntax>
      </parameter>

      <parameter name="References" access="readOnly">
        <description>
          Represents the instances of multi-instanced objects that are directly
          controlled by, and have come into existence because of, this
          {{object}}.

          See {{bibref|TR-069|Appendix VI.3.2}} for more description and some
          examples.

          NOTE: All other objects and parameters (i.e. not multi-instanced
          objects) that this {{object}} has caused to come into existence can
          be discovered via the {{object|##.DeviceInfo.SupportedDataModel}}
          table.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="AssociatedProcessList" access="readOnly">
        <description>
          Represents the system processes that are active in the system because
          of this {{object}}.

          If {{param|Status}} is not {{enum|Active|Status}} it is expected that
          this list will be {{empty}}. Some {{object}} instances MIGHT NOT have
          any system processes irrespective of the value of {{param|Status}}.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong"
                targetParent="##.DeviceInfo.ProcessStatus.Process."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="VendorLogList" access="readOnly">
        <description>
          Represents the vendor log files that have come into existence because
          of this {{object}}.

          When the {{object|#.DeploymentUnit}} (that caused this {{object}} to
          come into existence) is uninstalled the vendor log files referenced
          here SHOULD be removed from the device.

          Not all {{object}} instances will actually have a corresponding
          vendor log file, in which case the value of this parameter will be
          {{empty}}.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong"
                targetParent="##.DeviceInfo.VendorLogFile." targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="VendorConfigList" access="readOnly">
        <description>
          Represents the vendor config files that have come into existence
          because of this {{object}}.

          When the {{object|#.DeploymentUnit}} (that caused this {{object}} to
          come into existence) is uninstalled the vendor config files
          referenced here SHOULD be removed from the device.

          Not all {{object}} instances will actually have a corresponding
          vendor config file, in which case the value of this parameter will be
          {{empty}}.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong"
                targetParent="##.DeviceInfo.VendorConfigFile." targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SupportedDataModelList" access="readOnly"
          dmr:previousParameter="VendorConfigList">
        <description>
          Represents the CWMP-DT schema instances that have been introduced to
          this device because of the existence of this {{object}}.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong"
                targetParent="##.DeviceInfo.SupportedDataModel."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ApplicationDataList" access="readOnly" version="2.16">
        <description>
          Represents the application data volumes that are used by this
          {{object}}.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong"
                targetParent="#.ExecEnv.{i}.ApplicationData." targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ExecutionEnvRef" access="readOnly">
        <description>
          Represents the {{object|#.ExecEnv}} that this {{object}} is
          associated with.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="#.ExecEnv."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="HostObjectNumberOfEntries" access="readOnly"
          version="2.16">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="EnvVariableNumberOfEntries" access="readOnly"
          version="2.17">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.SoftwareModules.ExecutionUnit.{i}.AutoRestart."
        access="readOnly" minEntries="1" maxEntries="1" version="2.16">
      <description>
        Configures the parameters of the auto-restart algorithm for this EU.

        An auto-restart may be triggered if the Agent determines that the EU
        has terminated abnormally. An exponential backoff algorithm is applied
        (increasing each time the delay before the EU is re-launched) in order
        to prevent continual re-starting of the EU.

        The retry interval range is controlled by two Parameters,
        {{param|RetryMinimumWaitInterval}} and
        {{param|RetryIntervalMultiplier}}.

        Let ''m'' be the value of {{param|RetryMinimumWaitInterval}}, ''k'' the
        value of {{param|RetryIntervalMultiplier}}, and ''n'' the current value
        of {{param|RetryCount}}. Then on the next occasion that the Agent
        determines that the EU has terminated abnormally, the delay before
        re-starting the EU must lie between ''m * (k/1000)^n^'' and ''m *
        (k/1000)^(n+1)^'' seconds, so long as ''m * (k/1000)^n^'' evaluates to
        a value less than {{param|RetryMaximumWaitInterval}}. Once this point
        has been reached, on all subsequent occasion that the Agent determines
        that the EU has terminated abnormally the delay before re-starting the
        EU must lie between {{param|RetryMaximumWaitInterval}}'' * (1000/k)''
        and {{param|RetryMaximumWaitInterval}} seconds.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Enable the auto-restart feature for this EU.
        </description>
        <syntax>
          <boolean/>
          <default type="implementation" value="false"/>
        </syntax>
      </parameter>

      <parameter name="RetryMinimumWaitInterval" access="readWrite">
        <description>
          Configures the initial delay in {{units}} between detecting that the
          EU has terminated abnormally and re-starting it.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RetryMaximumWaitInterval" access="readWrite">
        <description>
          Configures the maximum delay in {{units}} between detecting that the
          EU has terminated abnormally and re-starting it.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RetryIntervalMultiplier" access="readWrite">
        <description>
          Configures the retry interval multiplier. This value is expressed in
          units of 0.001, so for example a value of 2000 will result in the
          retry interval being doubled each time.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MaximumRetryCount" access="readWrite">
        <description>
          Configures the maximum number of consecutive restarts (as shown in
          {{param|RetryCount}}) after which no more attempts will be performed.
          A value of zero means that the number of attempts is unlimited.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ResetPeriod" access="readWrite">
        <description>
          If the EU runs for this number of {{units}} without terminating
          abnormally the Agent MAY reset the {{param|RetryCount}} to zero,
          thereby resetting the exponential backoff algorithm. A value of zero
          disables this behavior.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RetryCount" access="readWrite">
        <description>
          The number times the EU has terminated abnormally and a restart has
          been attempted. Resetting this parameter to zero has the effect of
          re-initialising the exponential back-off algorithm.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="LastRestarted" access="readOnly">
        <description>
          The time at which the {{object|#}} was last re-started. Initially
          this parameter is set to the Unknown Time (0001-01-01T00:00:00Z).
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="NextRestart" access="readOnly">
        <description>
          The time at which the next restart of the {{object|#}} is scheduled
          to occur. The Infinite Time (9999-12-31T23:59:59Z) is used to
          indicate that no restart is currently scheduled.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.SoftwareModules.ExecutionUnit.{i}.NetworkConfig."
        access="readOnly" version="2.17">
      <description>
        Parameters of the network configuration for this ExecutionUnit.

        When no network configuration is provided, the EU will not have any
        network access.
      </description>

      <parameter name="AccessInterfaceRefList" access="readOnly">
        <description>
          Represents the network interface through which the traffic from the
          EU will be allowed.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetParent=".IP.Interface."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="PortMappingRefList" access="readOnly">
        <description>
          Represents the list of Port mappings associated with this EU.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetParent=".NAT.PortMapping."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.SoftwareModules.ExecutionUnit.{i}.HostObject.{i}."
        minEntries="0" maxEntries="unbounded" version="2.16" access="readOnly"
        numEntriesParameter="HostObjectNumberOfEntries">
      <description>
        This parameter describes the host OS objects (such as peripherals,
        files or directories, communication sockets, ...) which are accessible
        to the ExecutionUnit.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="Destination"/>
      </uniqueKey>

      <parameter name="Source" access="readOnly">
        <description>
          The object identifier by which the object may be accessed in the host
          OS environment. This object identifier MUST be valid in the host OS
          environment. For security reasons, Execution Environments may impose
          restrictions on the object identifiers which may be specified.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Destination" access="readOnly">
        <description>
          The object identifier by which the object may be accessed by the
          ExecutionUnit. This object identifier MUST be valid in the context of
          the Execution Environment in which the ExecutionUnit is installed.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Options" access="readOnly">
        <description>
          May be used to pass implementation-dependent options which are to be
          applied to the mapping,
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Alias" access="readWrite" version="2.16">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.SoftwareModules.ExecutionUnit.{i}.EnvVariable.{i}."
        minEntries="0" maxEntries="unbounded" version="2.17" access="readOnly"
        numEntriesParameter="EnvVariableNumberOfEntries">
      <description>
        This parameter describes the environment variables which are accessible
        to the ExecutionUnit.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="Key"/>
      </uniqueKey>

      <parameter name="Key" access="readOnly">
        <description>
          The Environment variable name that needs to be passed to the
          Execution unit when the execution unit is activated.
        </description>
        <syntax>
          <string>
            <size maxLength="2048"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Value" access="readOnly">
        <description>
          The Environment variable value associated with the name that needs to
          be passed to the Execution unit it is activated.
        </description>
        <syntax>
          <string>
            <size maxLength="2048"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Alias" access="readWrite" version="2.17">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.SoftwareModules.ExecutionUnit.{i}.Extensions."
        access="readOnly" minEntries="1" maxEntries="1" version="2.1">
      <description>
        This object proposes a general location for vendor extensions specific
        to this Execution Unit, which allows multiple Execution Units to expose
        parameters without the concern of conflicting parameter names. These
        vendor extensions are related to displaying status and maintaining
        configuration for this Execution Unit.

        It is also possible for the Execution Unit to expose status and
        configuration parameters within Service objects or as embedded objects
        and parameters directly within the root data model, in which case the
        combination of {{param|#.References}} and
        {{param|#.SupportedDataModelList}} will be used to determine their
        locations.

        See {{bibref|TR-069|Appendix VI.3.2}} for more description and some
        examples.
      </description>
    </object>

    <object name="Device.XMPP." access="readOnly" minEntries="1"
        maxEntries="1" version="2.7">
      <description>
        The {{object}} represents the XMPP capabilities of the
        device{{template|XMPP-APP-REF}}.
      </description>

      <parameter name="ConnectionNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SupportedServerConnectAlgorithms" access="readOnly"
          version="2.11">
        <description>
          The algorithms supported by the CPE for resolving XMPP server
          addresses and ports. {{enum}}
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="DNS-SRV">
              <description>
                Use the preferred connection algorithm as specified in
                {{bibref|RFC6120|Section 3.2.1}} where the value of the
                {{param|Connection.{i}.Domain}} parameter is used to look up
                the server address and port to use.
              </description>
            </enumeration>
            <enumeration value="DNS">
              <description>
                Use the fallback connection mechanism as specified in
                {{bibref|RFC6120|Section 3.2.2}}, where the value of the
                {{param|Connection.{i}.Domain}} parameter is used to look up
                the server address, and the port is the ''xmpp-client'' port
                (5222).
              </description>
            </enumeration>
            <enumeration value="ServerTable">
              <description>
                Use the instances of the {{object|Connection.{i}.Server}} table
                based on the values of the
                {{param|Connection.{i}.Server.{i}.Priority}} and
                {{param|Connection.{i}.Server.{i}.Weight}} parameters as the
                basis for reconnect. Instances MUST be reachable and reachable
                instances with the lowest value MUST be preferred.
              </description>
            </enumeration>
            <enumeration value="WebSocket">
              <description>
                Use the discovery and connection algorithm as specified in
                {{bibref|RFC7395|Section 4}} where the value of the
                {{param|Connection.{i}.Domain}} parameter is used to create a
                secure HTTP request to discover the URL to use for the XMPP
                over WebSocket connection.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.XMPP.Connection.{i}." access="readWrite"
        numEntriesParameter="ConnectionNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded"
        version="2.7">
      <description>
        The {{object}} represents a XMPP connection between the device and a
        server. The {{param|Username}}, {{param|Domain}} and {{param|Resource}}
        comprise the full identity (JabberID) of this {{object}} for this
        device.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="Username"/>
        <parameter ref="Domain"/>
        <parameter ref="Resource"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables this {{object}}.

          This parameter is based on ''ifAdminStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Alias" access="readWrite" version="2.7">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Username" access="readWrite">
        <description>
          The proposed local-part of the Jabber ID of this {{object}}, and the
          value to be used to authenticate this {{object}} when making a
          connection to the Server using the procedure outlined in
          {{bibref|RFC6120|Section 6}}.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Password" access="readWrite">
        <description>
          Password used to authenticate this {{object}} when making a
          connection to the {{object|Server}} using the procedure outlined in
          {{bibref|RFC6120|Section 6}}.

          Note that on a factory reset of the CPE, the value of this parameter
          might be reset to its factory value. If a Controller 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 secured="true">
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Domain" access="readWrite">
        <description>
          The proposed domain-part of the Jabber ID of this {{object}}.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Resource" access="readWrite">
        <description>
          The proposed resource-part of the Jabber ID of this {{object}}.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="JabberID" access="readOnly">
        <description>
          The complete Jabber ID as determined by the first-hop XMPP server at
          time of connection establishment. This Jabber ID will usually be the
          standard concatenation of the local-part (Username), domain-part
          (Domain), and resource-part (Resource) as defined in
          {{bibref|RFC6120|Section 2.1}}
          (local-part@domain-part/resource-part), but since the Jabber ID is
          owned by the first-hop XMPP Server there are cases where the value
          will be different.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The current operational state of this {{object}} (see
          {{bibref|TR-181i2|Section 4.2.2}}). {{enum}}

          When {{param|Enable}} is {{false}} then {{param}} SHOULD normally be
          {{enum|Disabled}} 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|Enabled}} if and only if the interface is able to
          transmit and receive PDUs; 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|Enabled}} if still operable when the
          expected actions have completed); it SHOULD change to
          {{enum|Unknown}} if the state of the interface can not be determined
          for some reason.
        </description>
        <syntax>
          <string>
            <enumeration value="Enabled"/>
            <enumeration value="Disabled"/>
            <enumeration value="Unknown"/>
            <enumeration value="Dormant"/>
            <enumeration value="Connecting"/>
            <enumeration value="ServerNotPresent"/>
            <enumeration value="Error_Misconfigured"/>
            <enumeration value="Error_AuthenticationFailure"/>
            <enumeration value="Error" optional="true"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChangeDate" access="readOnly">
        <description>
          The date and time at which this {{object}} entered into its current
          operational state.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="ServerConnectAlgorithm" access="readWrite">
        <description>
          The algorithm the {{object}} uses when connecting with the associated
          lists of servers.
        </description>
        <syntax>
          <string>
            <enumerationRef targetParam="#.SupportedServerConnectAlgorithms"/>
          </string>
          <default type="object" value="DNS-SRV"/>
        </syntax>
      </parameter>

      <parameter name="KeepAliveInterval" access="readWrite">
        <description>
          The number of {{units}} that keep alive events as specified in
          {{bibref|RFC6120|Section 4.6.1}} are sent by this {{object}}.

          A value of 0 disables the keep alive functionality. A value of -1
          indicates that the keep alive interval is a vendor specific
          implementation.

          {{bibref|RFC6120|Section 4.6.4}} recommends not checking more
          frequently than every 5 minutes (or 300 {{units}}).
        </description>
        <syntax>
          <long>
            <range minInclusive="-1"/>
            <units value="seconds"/>
          </long>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="ServerConnectAttempts" access="readWrite">
        <description>
          The number of times that this {{object}} attempts to connect to a
          given IP address before moving on to the current server's next IP
          address, or to the next server if the current server has no more IP
          addresses.

          If {{param}}, {{param|ServerRetryInitialInterval}},
          {{param|ServerRetryIntervalMultiplier}} and
          {{param|ServerRetryMaxInterval}} all have their default values, the
          maximum reconnection wait intervals, in ''minutes'', will be ''{1, 2,
          4, 8, 16, 32, 64, 128, 256, 512, 512, 512, 512, 512, 512}''. After
          the initial attempt there are 15 further attempts, making a total of
          16. The maximum reconnection wait interval is reached on the 10th
          retry, i.e. the 11th attempt.

          NOTE: If this {{object}} fails to connect to any of the servers' IP
          addresses, fallback behavior SHOULD be as specified in
          {{bibref|RFC6120|Section 3.2}}.

          NOTE: If the value of this parameter is 0, server connection and
          reconnection behavior is implementation-dependent.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="16"/>
        </syntax>
      </parameter>

      <parameter name="ServerRetryInitialInterval" access="readWrite">
        <description>
          The maximum first reconnection wait interval, in
          {{units}}{{template|XMPP-REF}}.

          The Device MUST use a random value between ''0'' and {{param}} as the
          first reconnection wait interval.

          NOTE: If the value of the {{param|ServerConnectAttempts}} parameter
          is 0, the value of this parameter is ignored.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="65535"/>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="60"/>
        </syntax>
      </parameter>

      <parameter name="ServerRetryIntervalMultiplier" access="readWrite">
        <description>
          The reconnection interval multiplier{{template|XMPP-REF}}. This value
          is expressed in units of 0.001. Hence the values of the multiplier
          range between 1.000 and 65.535.

          For the ''n''th reconnection wait interval, the Device MUST use a
          random value, in ''seconds'', between ''0'' and
          {{param|ServerRetryInitialInterval}} * ({{param}} / 1000) ** (''n'' -
          ''1'').

          NOTE: If the value of the {{param|ServerConnectAttempts}} parameter
          is 0, the value of this parameter is ignored.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1000" maxInclusive="65535"/>
          </unsignedInt>
          <default type="object" value="2000"/>
        </syntax>
      </parameter>

      <parameter name="ServerRetryMaxInterval" access="readWrite">
        <description>
          The maximum reconnection wait interval, in {{units}}.

          If the ''n''th reconnection wait interval calculated from
          {{param|ServerRetryInitialInterval}} and
          {{param|ServerRetryIntervalMultiplier}} exceeds the value of this
          parameter, then the Device MUST use the value of this parameter as
          the next reconnection wait interval.

          NOTE: If the value of the {{param|ServerConnectAttempts}} parameter
          is 0, the value of this parameter is ignored.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="30720"/>
        </syntax>
      </parameter>

      <parameter name="UseTLS" access="readWrite">
        <description>
          This parameter allows a Controller to configure whether or not this
          XMPP Connection is required to use TLS independent of whether or not
          the XMPP Server that is being connected to is configured for TLS
          "mandatory-to-negotiate".

          If the value of {{param}} is {{true}} then the CPE will initiate TLS
          negotiation if not required to by the XMPP Server.

          If the value of {{param}} is {{false}} then the CPE will not initiate
          TLS negotiation if not required to by the XMPP Server.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="TLSEstablished" access="readOnly">
        <description>
          This parameter represents the TLS state of this XMPP Connection.

          If this XMPP Connection is established and is secured by TLS then the
          value of this parameter is {{true}}.

          If this XMPP Connection is either not established or established but
          not secured by TLS then the value of this parameter is {{false}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="ServerNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.XMPP.Connection.{i}.Server.{i}." access="readWrite"
        numEntriesParameter="ServerNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.7">
      <description>
        The {{object}} represents an XMPP server to be used for a
        {{object|##.Connection}}.

        This table is only relevant when
        {{param|##.Connection.{i}.ServerConnectAlgorithm}} is set to
        {{enum|ServerTable|##.Connection.{i}.ServerConnectAlgorithm}}. If
        {{param|##.Connection.{i}.ServerConnectAlgorithm}} is set to
        {{enum|DNS-SRV|##.Connection.{i}.ServerConnectAlgorithm}} then any
        instances of this table are ignored by this {{object|##.Connection}}.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="ServerAddress"/>
        <parameter ref="Port"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables this {{object}}.

          This parameter is based on ''ifAdminStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Alias" access="readWrite" version="2.7">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Priority" access="readWrite">
        <description>
          The priority of this {{object}} that is used by the
          {{object|##.Connection}} when determining the {{object}} to connect.
          The {{object|##.Connection}} MUST contact the {{object}} with the
          lowest-numbered priority that the {{object|##.Connection}} can reach
          as defined in {{bibref|RFC2782}}. The selection of {{object}}s with
          the same {{param}} value utilizes the {{param|Weight}} parameter to
          determine which {{object}} is selected by the
          {{object|##.Connection}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Weight" access="readWrite">
        <description>
          This parameter specifies a relative weight for entries with the same
          {{param|Priority}}. The mechanism is defined in {{bibref|RFC2782}}. A
          value of -1 indicates that the implementation of this parameter is
          specific to the Vendor.
        </description>
        <syntax>
          <long>
            <range minInclusive="-1" maxInclusive="65535"/>
          </long>
        </syntax>
      </parameter>

      <parameter name="ServerAddress" access="readWrite">
        <description>
          Fully Qualified Domain Name (FQDN) or IP address of the XMPP server
          for this {{object|##.Connection}}.

          If the value of this Parameter is a FQDN that resolves to multiple
          addresses then each address SHOULD be attempted (in an
          implementation-specific order) until a connection can be made or all
          addresses are exhausted, in which case the next {{object}} instance
          (based on {{param|Priority}} and {{param|Weight}}) SHOULD be used.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Port" access="readWrite">
        <description>
          Port number of the XMPP server for this {{object|##.Connection}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
          <default type="object" value="5222"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.XMPP.Connection.{i}.Stats." access="readOnly"
        minEntries="1" maxEntries="1" version="2.7">
      <description>
        XMPP Connection statistics information for this resource.
      </description>

      <parameter name="ReceivedMessages" access="readOnly">
        <description>
          The number of XMPP stanzas (iq, presence, or message) that have been
          received on this {{object|##.Connection}}.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="TransmittedMessages" access="readOnly">
        <description>
          The number of XMPP stanzas (iq, presence, or message) that have been
          transmitted by this {{object|##.Connection}}.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="ReceivedErrorMessages" access="readOnly">
        <description>
          The number of XMPP stanzas (iq, presence, or message) that have been
          received on this {{object|##.Connection}} where the type attribute
          had a value of "error".
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="TransmittedErrorMessages" access="readOnly">
        <description>
          The number of XMPP stanzas (iq, presence, or message) that have been
          transmitted by this {{object|##.Connection}} where the type attribute
          had a value of "error".
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IEEE1905." access="readOnly" minEntries="1"
        maxEntries="1" version="2.9">
      <description>
        This object represents the management functions for the 1905
        capabilities as defined in {{bibref|IEEE1905.1a}}.
      </description>

      <parameter name="Version" access="readOnly">
        <description>
          1905 profile version number of the AL as would be sent in a Higher
          Layer response message as defined in {{bibref|IEEE1905.1a|Table 6-37:
          1905 profile version TLV}}.
        </description>
        <syntax>
          <string>
            <enumeration value="1905.1"/>
            <enumeration value="1905.1a"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IEEE1905.AL." access="readOnly" minEntries="1"
        maxEntries="1" version="2.9">
      <description>
        This object represents the management functions for the 1905
        Abstraction Layer as defined in {{bibref|IEEE1905.1a|Section 4.4
        Abstraction Layer}}.
      </description>

      <parameter name="IEEE1905Id" access="readOnly">
        <description>
          1905 AL MAC Address.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The current operational state of the 1905 Abstraction Layer. {{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="Up">
              <description>
                NOT RECOMMENDED for use; if used it means {{enum|Enabled}}
              </description>
            </enumeration>
            <enumeration value="Down">
              <description>
                NOT RECOMMENDED for use; if used it means {{enum|Disabled}}
              </description>
            </enumeration>
            <enumeration value="Unknown">
              <description>
                NOT RECOMMENDED for use; if used it means {{enum|Error}}
              </description>
            </enumeration>
            <enumeration value="Dormant">
              <description>
                NOT RECOMMENDED for use; if used it means {{enum|Error}}
              </description>
            </enumeration>
            <enumeration value="NotPresent">
              <description>
                NOT RECOMMENDED for use; if used it means {{enum|Error}}
              </description>
            </enumeration>
            <enumeration value="LowerLayerDown">
              <description>
                NOT RECOMMENDED for use; if used it means {{enum|Error}}
              </description>
            </enumeration>
            <enumeration value="Error" optional="true"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter is NOT RECOMMENDED to be used because IEEE1905 is not
          an interface. The accumulated time in {{units}} since the 1905
          Abstraction Layer entered its current operational state.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LowerLayers" access="readOnly">
        <description>
          This parameter is NOT RECOMMENDED to be used because IEEE1905 is not
          an interface. {{list}} {{reference}} See {{bibref|TR-181i2|Section
          4.2.1}}.
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string>
            <pathRef refType="strong" targetParent="#.AL.Interface."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="RegistrarFreqBand" access="readOnly">
        <description>
          {{list}} See {{bibref|IEEE1905.1a|Table 6-25: SupportedFreqBand
          TLV}}. {{enum}}
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string>
            <enumeration value="802.11 2.4 GHz"/>
            <enumeration value="802.11 5 GHz"/>
            <enumeration value="802.11 60 GHz"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="InterfaceNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IEEE1905.AL.Interface.{i}." access="readOnly"
        numEntriesParameter="InterfaceNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.9">
      <description>
        The 1905 interface table (described in {{bibref|IEEE1905.1a|sub-clause
        5 Abstraction Layer Management}}).
      </description>
      <uniqueKey functional="true">
        <parameter ref="InterfaceId"/>
      </uniqueKey>

      <parameter name="InterfaceId" access="readOnly">
        <description>
          MAC Address of this interface. This is the value of the intfAddress
          parameter defined in {{bibref|IEEE1905.1a|Table 5-2: intfDescriptor
          elements}}
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          This parameter is NOT RECOMMENDED to be used because it is not a
          parameter defined in a 1905 ALME primitive or protocol TLV. The
          current operational state of the interface (see
          {{bibref|TR-181i2|Section 4.2.2}}). {{enum}}

          It SHOULD change to {{enum|Up}} if and only if the interface is able
          to transmit and receive network traffic; it SHOULD normally be
          {{enum|Down}} when the interface cannot 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="LastChange" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter is NOT RECOMMENDED to be used because it is not a
          parameter defined in a 1905 ALME primitive or protocol TLV. 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="readOnly">
        <description>
          This parameter is NOT RECOMMENDED to be used because it is not a
          parameter defined in a 1905 ALME primitive or protocol TLV. {{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="InterfaceStackReference" access="readOnly"
          activeNotify="canDeny">
        <description>
          Path name of an interface object described by this 1905 {{object}}.
          Referenced interface object MUST have a MACAddress and the
          InterfaceId MUST be the same as the interface object MACAddress.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="MediaType" access="readOnly">
        <description>
          Media type of this {{object}}. This is derived from the value of the
          intfType parameter defined in {{bibref|IEEE1905.1a|Tables 5.2:
          intfDescriptor elements}}. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="IEEE 802.3u">
              <description>IEEE 802.3u Fast Ethernet</description>
            </enumeration>
            <enumeration value="IEEE 802.3ab">
              <description>IEEE 802.3ab Gigabit Ethernet</description>
            </enumeration>
            <enumeration value="IEEE 802.11b">
              <description>IEEE 802.11b (2.4GHz)</description>
            </enumeration>
            <enumeration value="IEEE 802.11g">
              <description>IEEE 802.11g (2.4GHz)</description>
            </enumeration>
            <enumeration value="IEEE 802.11a">
              <description>IEEE 802.11a (5GHz)</description>
            </enumeration>
            <enumeration value="IEEE 802.11n 2.4">
              <description>IEEE 802.11n (2.4GHz)</description>
            </enumeration>
            <enumeration value="IEEE 802.11n 5.0">
              <description>IEEE 802.11n (5GHz)</description>
            </enumeration>
            <enumeration value="IEEE 802.11ac">
              <description>IEEE 802.11ac (5GHz)</description>
            </enumeration>
            <enumeration value="IEEE 802.11ad">
              <description>IEEE 802.11ad (60GHz)</description>
            </enumeration>
            <enumeration value="IEEE 802.11af">
              <description>IEEE 802.11af</description>
            </enumeration>
            <enumeration value="IEEE 1901 Wavelet">
              <description>IEEE 1901 Wavelet</description>
            </enumeration>
            <enumeration value="IEEE 1901 FFT">
              <description>IEEE 1901 FFT</description>
            </enumeration>
            <enumeration value="MoCAv1.1">
              <description>MoCAv1.1</description>
            </enumeration>
            <enumeration value="Generic PHY"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="GenericPhyOUI" access="readOnly">
        <description>
          OUI of the Generic Phy networking technology of the local interface
          that would be included in a Generic Phy Device Information Type TLV
          defined in {{bibref|IEEE1905.1a|Tables 6-29: Generic Phy Device
          Information type TLV}}.
        </description>
        <syntax>
          <string>
            <size minLength="6" maxLength="6"/>
            <pattern value="[0-9A-F]{6}"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="GenericPhyVariant" access="readOnly">
        <description>
          Variant Index of the Generic Phy networking technology of the local
          interface that would be included in a Generic Phy Device Information
          Type TLV defined in {{bibref|IEEE1905.1a|Tables 6-29: Generic Phy
          Device Information type TLV}}.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="1" maxLength="1"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="GenericPhyURL" access="readOnly">
        <description>
          {{datatype}} to the Generic Phy XML Description of the Generic Phy
          networking technology of the local interface that would be included
          in a Generic Phy Device Information Type TLV defined in
          {{bibref|IEEE1905.1a|Table 6-29: Generic Phy device information type
          TLV}}.
        </description>
        <syntax>
          <dataType ref="URL"/>
        </syntax>
      </parameter>

      <parameter name="SetIntfPowerStateEnabled" access="readWrite">
        <description>
          Enables or disables the Abstraction Layer's ability to set the power
          state for the interface. Boolean can be {{true}} for "enabled" and
          {{false}} for "disabled".
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="PowerState" access="readWrite">
        <description>
          The Power State of this {{object}}. This is derived from the value of
          the powerState parameter as defined in {{bibref|IEEE1905.1a|Tables
          5.3: ALME-SET-INTF-PWR-STATE.request parameters and Table 5.7:
          ALME-GET-INTF-PWR-STATE.response parameters}}. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="On"/>
            <enumeration value="Power_Save">
              <description>not used when written</description>
            </enumeration>
            <enumeration value="Off"/>
            <enumeration value="Unsupported">
              <description>not used when written</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="VendorPropertiesNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="LinkNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IEEE1905.AL.Interface.{i}.VendorProperties.{i}."
        access="readOnly" numEntriesParameter="VendorPropertiesNumberOfEntries"
        minEntries="0" maxEntries="unbounded" dmr:noUniqueKeys="true"
        version="2.9">
      <description>
        This object defines the vendor specific properties (vendorSpecificInfo
        field) of this {{object|##.Interface}} as defined in
        {{bibref|IEEE1905.1a|Table 5-2: intfDescriptor elements}}.
      </description>

      <parameter name="OUI" access="readOnly">
        <description>
          Organizationally unique identifier of a manufacturer of this
          {{object|##.Interface}}. Represented as a six hexadecimal-digit value
          using all upper-case letters and including any leading zeros
          according to {{bibref|IEEE1905.1a|Table 5-20: VendorSpecificInfo
          information element}}. {{pattern}}
        </description>
        <syntax>
          <string>
            <size minLength="6" maxLength="6"/>
            <pattern value="[0-9A-F]{6}"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Information" access="readOnly">
        <description>
          A hexbinary string used to to provide vendor specific information
          about this {{object|##.Interface}}. This is the value of the
          vendorSpecificInfo parameter defined in {{bibref|IEEE1905.1a|Table
          5-20: VendorSpecificInfo information element}}.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="65535"/>
          </hexBinary>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IEEE1905.AL.Interface.{i}.Link.{i}."
        access="readOnly" numEntriesParameter="LinkNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.9">
      <description>
        This object defines the 1905 neighbors and link properties.
      </description>
      <uniqueKey functional="true">
        <parameter ref="InterfaceId"/>
        <parameter ref="IEEE1905Id"/>
      </uniqueKey>

      <parameter name="InterfaceId" access="readOnly">
        <description>
          MAC Address of the interface of the Neighbor for this {{object}}.
          This value comes from the neighbor’s Topology discovery message as
          defined in {{bibref|IEEE1905.1a|Table 6-9: MAC address typeTLV}}.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="IEEE1905Id" access="readOnly">
        <description>
          MAC Address of the 1905 AL entity of the Neighbor device on this
          {{object}}. This value comes from the neighbor’s Topology discovery
          message as defined in {{bibref|IEEE1905.1a|Table 6-8: AL MAC address
          type TLV}}.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="MediaType" access="readOnly">
        <description>
          Media type of this {{object}}. This value is derived from the
          neighbor’s Topology response message 1905 device information type TLV
          Media Type field as defined in {{bibref|IEEE1905.1a|Table 6-12: Media
          type}}. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="IEEE 802.3u">
              <description>IEEE 802.3u Fast Ethernet</description>
            </enumeration>
            <enumeration value="IEEE 802.3ab">
              <description>IEEE 802.3ab Gigabit Ethernet</description>
            </enumeration>
            <enumeration value="IEEE 802.11b">
              <description>IEEE 802.11b (2.4GHz)</description>
            </enumeration>
            <enumeration value="IEEE 802.11g">
              <description>IEEE 802.11g (2.4GHz)</description>
            </enumeration>
            <enumeration value="IEEE 802.11a">
              <description>IEEE 802.11a (5GHz)</description>
            </enumeration>
            <enumeration value="IEEE 802.11n 2.4">
              <description>IEEE 802.11n (2.4GHz)</description>
            </enumeration>
            <enumeration value="IEEE 802.11n 5.0">
              <description>IEEE 802.11n (5GHz)</description>
            </enumeration>
            <enumeration value="IEEE 802.11ac">
              <description>IEEE 802.11ac (5GHz)</description>
            </enumeration>
            <enumeration value="IEEE 802.11ad">
              <description>IEEE 802.11ad (60GHz)</description>
            </enumeration>
            <enumeration value="IEEE 802.11af">
              <description>IEEE 802.11af</description>
            </enumeration>
            <enumeration value="IEEE 1901 Wavelet">
              <description>IEEE 1901 Wavelet</description>
            </enumeration>
            <enumeration value="IEEE 1901 FFT">
              <description>IEEE 1901 FFT</description>
            </enumeration>
            <enumeration value="MoCAv1.1">
              <description>MoCAv1.1</description>
            </enumeration>
            <enumeration value="Generic PHY"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="GenericPhyOUI" access="readOnly">
        <description>
          OUI of the Generic Phy networking technology of the interface of the
          Neighbor for this {{object|#.Link}}. This value is from a Generic Phy
          response message field as defined in {{bibref|IEEE1905.1a|Tables
          6-29: Generic Phy Device Information type TLV}}.
        </description>
        <syntax>
          <string>
            <size minLength="6" maxLength="6"/>
            <pattern value="[0-9A-F]{6}"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="GenericPhyVariant" access="readOnly">
        <description>
          Variant Index of the Generic Phy networking technology of the
          interface of the Neighbor for this {{object|#.Link}}. This value is
          from a Generic Phy response message variant index field as defined in
          {{bibref|IEEE1905.1a|Tables 6-29: Generic Phy Device Information type
          TLV}}.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="1" maxLength="1"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="GenericPhyURL" access="readOnly">
        <description>
          {{datatype}} to the Generic Phy XML Description of the Generic Phy
          networking technology of the interface of the Neighbor for this
          {{object|#.Link}}. This value is from a Generic Phy response message
          URL to Generic Phy field as defined in {{bibref|IEEE1905.1a|Table
          6-29: Generic Phy device information type TLV}}.
        </description>
        <syntax>
          <dataType ref="URL"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IEEE1905.AL.Interface.{i}.Link.{i}.Metric."
        access="readOnly" minEntries="1" maxEntries="1" version="2.9">
      <description>
        This object represents the metrics for this {{object|##.Link}} as
        defined in {{bibref|IEEE1905.1a|Tables 6-18: 1905 transmitter link
        metrics and Table 6-20: 1905 receiver link metrics}}.
      </description>

      <parameter name="IEEE802dot1Bridge" access="readOnly">
        <description>
          Indicates whether or not the 1905 link includes one or more IEEE
          802.1 bridges. If {{false}}, the 1905 link does not include an IEEE
          802.1 bridge. If {{true}}, the 1905 link does include one or more
          IEEE 802.1 bridges.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="PacketErrors" access="readOnly" activeNotify="canDeny">
        <description>
          Estimated number of lost {{units}} on the transmit side of the link
          {{bibref|IEEE1905.1a|Table 6-18: 1905 transmitter link metrics}}
          during a measurement period.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="Packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketErrorsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          Estimated number of lost {{units}} on the receive side of the link
          {{bibref|IEEE1905.1a|Table 6-20: 1905 receiver link metrics}} during
          a measurement period.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="Packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="TransmittedPackets" access="readOnly"
          activeNotify="canDeny">
        <description>
          Estimated number of {{units}} sent to the Neighbor on this
          {{object|##.Link}}, in the same measurement period used to estimate
          {{param|PacketErrors}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="Packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          Estimated number of {{units}} received from this Neighbor on this
          {{object|##.Link}} {{bibref|IEEE1905.1a|Table 6-20: 1905 receiver
          link metrics}}, in the same measurement period used to estimate
          {{param|PacketErrors}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="Packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MACThroughputCapacity" access="readOnly"
          activeNotify="canDeny">
        <description>
          The maximum MAC throughput in {{units}} between this
          {{object|###.Interface}} and the Neighbor on this {{object|##.Link}}
          that is estimated at this {{object|###.Interface}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mb/s"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LinkAvailability" access="readOnly"
          activeNotify="canDeny">
        <description>
          The estimated average {{units}} of time that the {{object|##.Link}}
          is available for data transmissions.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="100"/>
            <units value="percent"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="PHYRate" access="readOnly" activeNotify="canDeny">
        <description>
          The Physical Layer (PHY) rate in {{units}} between this
          {{object|###.Interface}} and the Neighbor on this {{object|##.Link}}
          that is estimated at this {{object|###.Interface}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mb/s"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RSSI" access="readOnly" activeNotify="canDeny">
        <description>
          The estimated Received Signal Strength Indicator (RSSI) ratio in
          {{units}} between this {{object|###.Interface}} and the Neighbor on
          this {{object|##.Link}} that is estimated at the receive side of this
          {{object|###.Interface}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
            <units value="dB"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IEEE1905.AL.ForwardingTable." access="readOnly"
        minEntries="1" maxEntries="1" version="2.9">
      <description>
        This object represents the rules to forward PDUs between interfaces
        within the 1905 Abstraction Layer.
      </description>

      <parameter name="SetForwardingEnabled" access="readWrite">
        <description>
          Abstraction Layer ability to set, modify, and remove
          {{object|ForwardingRule}} entries for interfaces. Boolean can be
          {{true}} for "enabled" and {{false}} for "disabled".
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="ForwardingRuleNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}."
        access="readWrite" numEntriesParameter="ForwardingRuleNumberOfEntries"
        minEntries="0" maxEntries="unbounded" dmr:noUniqueKeys="true"
        version="2.9">
      <description>
        The 1905 forwarding rule for the ALME-SET-FWD-RULE.request and
        ALME-GET-FWD-RULES.response with classification criteria as defined in
        {{bibref|IEEE1905.1a|Table 5-9: ClassificationSet elements}}.
      </description>

      <parameter name="InterfaceList" access="readWrite">
        <description>
          The list of interfaces to which a frame satisfying the following
          classification criteria should be forwarded (intfAddressList
          parameter as defined in {{bibref|IEEE1905.1a|Table 5-8:
          ALME-SET-FWD-RULE.request parameters and Table 5-12: fwdRuleList
          elements}}). {{list}} Each list item MUST be the path name of an
          object, which MUST be a row of an {{object|##.Interface}} object. If
          the referenced item is deleted, the corresponding item MUST be
          removed from the list. {{noreference}}
        </description>
        <syntax>
          <list/>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="##.Interface."
                targetType="row"/>
          </string>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>

      <parameter name="MACDestinationAddress" access="readWrite">
        <description>
          Classification criterion.

          The destination MAC address.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="MACDestinationAddressFlag" access="readWrite">
        <description>
          If {{false}}, the classification criterion
          {{param|MACDestinationAddress}} is ignored. If {{true}}, the
          classification criterion {{param|MACDestinationAddress}} is used.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="MACSourceAddress" access="readWrite">
        <description>
          Classification criterion.

          The source MAC address.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="MACSourceAddressFlag" access="readWrite">
        <description>
          If {{false}}, the classification criterion {{param|MACSourceAddress}}
          is ignored. If {{true}}, the classification criterion
          {{param|MACSourceAddress}} is used.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="EtherType" access="readWrite">
        <description>
          Classification criterion.

          Ether Type Field in a frame.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="EtherTypeFlag" access="readWrite">
        <description>
          If {{false}}, the classification criterion {{param|EtherType}} is
          ignored. If {{true}}, the classification {{param|EtherType}} is used.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Vid" access="readWrite">
        <description>
          Classification criterion.

          IEEE 802.1Q VLAN ID in a frame.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="4095"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="VidFlag" access="readWrite">
        <description>
          If {{false}}, the classification criterion {{param|Vid}} is ignored.
          If {{true}}, the classification {{param|Vid}} is used.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="PCP" access="readWrite">
        <description>
          Classification criterion.

          IEEE 802.1Q Priority Code Point field.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="7"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="PCPFlag" access="readWrite">
        <description>
          If {{false}}, the classification criterion {{param|PCP}} is ignored.
          If {{true}}, the classification {{param|PCP}} is used.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IEEE1905.AL.NetworkTopology." access="readOnly"
        minEntries="1" maxEntries="1" version="2.9">
      <description>
        This object represents the 1905 Network Topology capabilities of this
        device.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the 1905 Network Topology reporting (via a
          Controller). When {{true}}, the device clears and (re)populates the
          {{object|IEEE1905Device}} and {{object|ChangeLog}} tables. When
          {{false}}, the contents of the {{object|IEEE1905Device}} and
          {{object|ChangeLog}} tables have no meaning.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          When {{param|Enable}} is set to {{true}}, this parameter indicates
          the transient phase of the discovery of the {{object}}.

          {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="Incomplete">
              <description>
                Indicates that the device is populating the topology object
                during the transient phase.
              </description>
            </enumeration>
            <enumeration value="Available">
              <description>
                Indicates that the transient phase is over and the device is
                maintaining and updating the topology object as changes occur.
              </description>
            </enumeration>
            <enumeration value="Error_Misconfigured">
              <description>
                NOT RECOMMENDED for use; if used, indicates that a necessary
                configuration value is undefined or invalid.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="MaxChangeLogEntries" access="readWrite">
        <description>
          The maximum number of entries allowed in the {{object|ChangeLog}}
          table.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LastChange" access="readOnly">
        <description>
          {{reference}} If the {{object|ChangeLog}} is modified the parameter
          is modified to reflect the last entry added to the
          {{object|ChangeLog}}.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="ChangeLog."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="IEEE1905DeviceNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ChangeLogNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IEEE1905.AL.NetworkTopology.ChangeLog.{i}."
        access="readOnly" numEntriesParameter="ChangeLogNumberOfEntries"
        minEntries="0" maxEntries="unbounded" dmr:noUniqueKeys="true"
        version="2.9">
      <description>
        This object represents log entries for changes in the 1905 Network
        Topology. The Change Log is a First In First Out queue where the oldest
        entries (defined by values of the {{param|TimeStamp}} parameter) are
        deleted once the log is full.
      </description>

      <parameter name="TimeStamp" access="readOnly">
        <description>
          Date and Time at which the entry was added to the {{object}} table.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="EventType" access="readOnly">
        <description>
          Type of event for this entry. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="NewNeighbor">
              <description>
                Entry represents a discovery of a Neighbor.
              </description>
            </enumeration>
            <enumeration value="LostNeighbor">
              <description>
                Entry represents the loss of a Neighbor.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="ReporterDeviceId" access="readOnly">
        <description>
          1905 AL MAC Address of device which reported the change.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="ReporterInterfaceId" access="readOnly">
        <description>
          MAC Address of the interface of the reporting device on which the
          change has been detected.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="NeighborType" access="readOnly">
        <description>
          Type of Neighbor for this event. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="IEEE1905"/>
            <enumeration value="Non-IEEE1905"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="NeighborId" access="readOnly">
        <description>
          MAC Address of the Neighbor of this event. If the value of the
          {{param|EventType}} parameter is {{enum|NewNeighbor|EventType}}, then
          the value of this parameter represents the MAC Address of the new
          Neighbor that joined the network; if the value of the
          {{param|EventType}} parameter is {{enum|LostNeighbor|EventType}},
          then the value of this parameter represents the MAC Address of the
          Neighbor that left the network.

          If value of the {{param|NeighborType}} parameter is
          {{enum|IEEE1905|NeighborType}}, then the value of this parameter is
          the 1905 AL MAC Address of the Neighbor.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}."
        access="readOnly" numEntriesParameter="IEEE1905DeviceNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.9">
      <description>
        This object represents an instance of discovered 1905 Devices in the
        network (received Topology discovery message as defined in
        {{bibref|IEEE1905.1a|Clause 6.3.1}}).
      </description>
      <uniqueKey functional="true">
        <parameter ref="IEEE1905Id"/>
      </uniqueKey>

      <parameter name="IEEE1905Id" access="readOnly">
        <description>
          1905 AL MAC Address.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="Version" access="readOnly">
        <description>
          1905 profile version number in Higher Layer Response message as
          defined in {{bibref|IEEE1905.1a|Table 6-37: 1905 profile version
          TLV}}.
        </description>
        <syntax>
          <string>
            <enumeration value="1905.1"/>
            <enumeration value="1905.1a"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="RegistrarFreqBand" access="readOnly">
        <description>
          {{list}} of frequency bands identified as supported for a registrar
          role in an AP-autoconfiguration response message as defined in
          {{bibref|IEEE1905.1a|Table 6-25: SupportedFreqBand TLV}} {{enum}}.
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string>
            <enumeration value="802.11 2.4 GHz"/>
            <enumeration value="802.11 5 GHz"/>
            <enumeration value="802.11 60 GHz"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="FriendlyName" access="readOnly">
        <description>
          Friendly Name String received in Higher Layer response message as
          defined in {{bibref|IEEE1905.1a|Table 6-30: Device Identification
          Type TLV}}.
        </description>
        <syntax>
          <string>
            <size maxLength="128"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ManufacturerName" access="readOnly">
        <description>
          Manufacturer Name String received in Higher Layer response message as
          defined in {{bibref|IEEE1905.1a|Table 6-30: Device Identification
          Type TLV}}.
        </description>
        <syntax>
          <string>
            <size maxLength="128"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ManufacturerModel" access="readOnly">
        <description>
          Manufacturer Model String received in Higher Layer response message
          as defined in {{bibref|IEEE1905.1a|Table 6-30: Device Identification
          Type TLV}}.
        </description>
        <syntax>
          <string>
            <size maxLength="128"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ControlURL" access="readOnly">
        <description>
          Control {{datatype}} received in Higher Layer response message as
          defined in defined in {{bibref|IEEE1905.1a|Table 6-31: Control URL
          Type TLV}}.
        </description>
        <syntax>
          <dataType ref="URL"/>
        </syntax>
      </parameter>

      <parameter name="AssocWiFiNetworkDeviceRef" access="readOnly"
          version="2.13">
        <description>
          {{param}} is a reference to a Wi-Fi Network Data Elements Device.
          Since IEEE 1905.1 is the protocol used by the Wi-Fi Alliance's
          EasyMesh specification for communications, this parameter allows the
          IEEE 1905.1 portion of the data model to reference the associated
          EasyMesh portion of the data model.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong"
                targetParent="####.WiFi.DataElements.Network.Device."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="VendorPropertiesNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="IPv4AddressNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="IPv6AddressNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="InterfaceNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="NonIEEE1905NeighborNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="IEEE1905NeighborNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="L2NeighborNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="BridgingTupleNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv4Address.{i}."
        access="readOnly" numEntriesParameter="IPv4AddressNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.9">
      <description>
        This object represents represents all IPv4 addresses reported for a MAC
        address (AL or interface) in a Higher Layer response message for the
        IEEE1905Device as defined in {{bibref|IEEE1905.1a|Table 6-32: IPv4 type
        TLV}}.
      </description>
      <uniqueKey functional="true">
        <parameter ref="MACAddress"/>
        <parameter ref="IPv4Address"/>
      </uniqueKey>

      <parameter name="MACAddress" access="readOnly">
        <description>
          MAC Address.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="IPv4Address" access="readOnly">
        <description>
          IPv4 Address.
        </description>
        <syntax>
          <dataType ref="IPv4Address"/>
        </syntax>
      </parameter>

      <parameter name="IPv4AddressType" access="readOnly">
        <description>
          The IPv4 Address Type of this {{param|IPv4Address}}. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="Unknown"/>
            <enumeration value="DHCP"/>
            <enumeration value="Static"/>
            <enumeration value="Auto-IP"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="DHCPServer" access="readOnly">
        <description>
          Either IPv4 address of DHCPv4 server or IPv6 address of DHCPv6
          server.
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv6Address.{i}."
        access="readOnly" numEntriesParameter="IPv6AddressNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.9">
      <description>
        This object represents represents all IPv6 addresses reported for a MAC
        address (AL or interface) in a Higher Layer response message for the
        IEEE1905Device as defined in {{bibref|IEEE1905.1a|Table 6-34: IPv6 type
        TLV}}.
      </description>
      <uniqueKey functional="true">
        <parameter ref="MACAddress"/>
        <parameter ref="IPv6Address"/>
      </uniqueKey>

      <parameter name="MACAddress" access="readOnly">
        <description>
          MAC Address.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="IPv6Address" access="readOnly">
        <description>
          IPv6 Address.
        </description>
        <syntax>
          <dataType ref="IPv6Address"/>
        </syntax>
      </parameter>

      <parameter name="IPv6AddressType" access="readOnly">
        <description>
          The IPv6 Address Type of this {{param|IPv6Address}}. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="Unknown"/>
            <enumeration value="LinkLocal"/>
            <enumeration value="DHCP"/>
            <enumeration value="Static"/>
            <enumeration value="SLAAC"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="IPv6AddressOrigin" access="readOnly">
        <description>
          "::" or the IPv6 address of the origin of this IPv6 address.
        </description>
        <syntax>
          <dataType ref="IPv6Address"/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.VendorProperties.{i}."
        access="readOnly" numEntriesParameter="VendorPropertiesNumberOfEntries"
        minEntries="0" maxEntries="unbounded" dmr:noUniqueKeys="true"
        version="2.9">
      <description>
        This object represents vendor specific information received in a
        message with a Vendor specific TLV (as defined in in
        {{bibref|IEEE1905.1a|Table 6-7: Vendor specific TLV}}).
      </description>

      <parameter name="MessageType" access="readOnly">
        <description>
          The Message type of a message received from this IEEE1905Device that
          contained a Vendor specific TLV, as defined in
          {{bibref|IEEE1905.1a|Table 6-4: Message type}}.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="1" maxLength="1"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="OUI" access="readOnly">
        <description>
          This is the value of the Vendor specific OUI defined in
          {{bibref|IEEE1905.1a|Table 6-7: Vendor specific TLV}}. {{pattern}}
        </description>
        <syntax>
          <string>
            <size minLength="6" maxLength="6"/>
            <pattern value="[0-9A-F]{6}"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Information" access="readOnly">
        <description>
          A hexbinary string used to provide vendor specific information. This
          is the value of the Vendor specific information parameter defined in
          {{bibref|IEEE1905.1a|Table 6-7: Vendor specific TLV}}.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="0" maxLength="65535"/>
          </hexBinary>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}."
        access="readOnly" numEntriesParameter="InterfaceNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.9">
      <description>
        This object represents an instance of an interface for the
        {{object|##.IEEE1905Device}}.
      </description>
      <uniqueKey functional="true">
        <parameter ref="InterfaceId"/>
      </uniqueKey>

      <parameter name="InterfaceId" access="readOnly">
        <description>
          MAC Address of the interface. This comes from the Topology response
          message as defined in {{bibref|IEEE1905.1a|Table 6-10: 1905 device
          information type TLV}}.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="MediaType" access="readOnly">
        <description>
          Media type of this {{object}}. This comes from the Topology response
          message as defined in {{bibref|IEEE1905.1a|Table 6-10: 1905 device
          information type TLV}}. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="IEEE 802.3u">
              <description>IEEE 802.3u Fast Ethernet</description>
            </enumeration>
            <enumeration value="IEEE 802.3ab">
              <description>IEEE 802.3ab Gigabit Ethernet</description>
            </enumeration>
            <enumeration value="IEEE 802.11b">
              <description>IEEE 802.11b (2.4GHz)</description>
            </enumeration>
            <enumeration value="IEEE 802.11g">
              <description>IEEE 802.11g (2.4GHz)</description>
            </enumeration>
            <enumeration value="IEEE 802.11a">
              <description>IEEE 802.11a (5GHz)</description>
            </enumeration>
            <enumeration value="IEEE 802.11n 2.4">
              <description>IEEE 802.11n (2.4GHz)</description>
            </enumeration>
            <enumeration value="IEEE 802.11n 5.0">
              <description>IEEE 802.11n (5GHz)</description>
            </enumeration>
            <enumeration value="IEEE 802.11ac">
              <description>IEEE 802.11ac (5GHz)</description>
            </enumeration>
            <enumeration value="IEEE 802.11ad">
              <description>IEEE 802.11ad (60GHz)</description>
            </enumeration>
            <enumeration value="IEEE 802.11af">
              <description>IEEE 802.11af</description>
            </enumeration>
            <enumeration value="IEEE 1901 Wavelet">
              <description>IEEE 1901 Wavelet</description>
            </enumeration>
            <enumeration value="IEEE 1901 FFT">
              <description>IEEE 1901 FFT</description>
            </enumeration>
            <enumeration value="MoCAv1.1">
              <description>MoCAv1.1</description>
            </enumeration>
            <enumeration value="Generic PHY"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="PowerState" access="readOnly">
        <description>
          The Power State of this {{object}}. "{{enum|Off}}" is used for
          interfaces identified in a Power Off Interface TLV as defined in
          {{bibref|IEEE1905.1a|Table 6-38}}. "{{enum|On}}" is used for all
          other interfaces. "{{enum|Power_Save}}" and "{{enum|Unsupported}}"
          are not used at this time. Updated as a result of a received
          Interface Power Change response with “request completed” or
          “alternate change made” Interface Power Change status as defined in
          {{bibref|IEEE1905.1a|Table 6-40: Interface Power Change status TLV}}.
          {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="On"/>
            <enumeration value="Power_Save"/>
            <enumeration value="Off"/>
            <enumeration value="Unsupported"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="GenericPhyOUI" access="readOnly">
        <description>
          {{param}} of this {{object|#.Interface}}. {{pattern}}
        </description>
        <syntax>
          <string>
            <size minLength="6" maxLength="6"/>
            <pattern value="[0-9A-F]{6}"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="GenericPhyVariant" access="readOnly">
        <description>
          Variant Index of the Generic Phy networking technology of this
          {{object|#.Interface}}. This value is from a Generic Phy response
          message variant index field as defined in {{bibref|IEEE1905.1a|Table
          6-29: Generic Phy device information type TLV}}.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="1" maxLength="1"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="GenericPhyURL" access="readOnly">
        <description>
          {{datatype}} to the Generic Phy XML Description of the Generic Phy
          networking technology of this {{object|#.Interface}}. This value is
          from a Generic Phy response message URL to generic phy field as
          defined in {{bibref|IEEE1905.1a|Table 6-29: Generic Phy device
          information type TLV}}.
        </description>
        <syntax>
          <dataType ref="URL"/>
        </syntax>
      </parameter>

      <parameter name="NetworkMembership" access="readOnly">
        <description>
          MACAddress Field from Media specific information for an 802.11
          interface provided in a Topology response message 1905 device
          information type TLV as defined in {{bibref|IEEE1905.1a|Table 6-13:
          IEEE 802.11 specific information}}.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="Role" access="readOnly">
        <description>
          Field from Media specific information for an 802.11 interface
          provided in a Topology response message 1905 device information type
          TLV as defined in {{bibref|IEEE1905.1a|Table 6-13: IEEE 802.11
          specific information}}. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="AP"/>
            <enumeration value="non-AP/non-PCP STA"/>
            <enumeration value="Wi-Fi P2P Client"/>
            <enumeration value="Wi-Fi P2P Group Owner"/>
            <enumeration value="802.11adPCP"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="APChannelBand" access="readOnly">
        <description>
          Hexadecimal digit. Field from Media specific information for an
          802.11 interface provided in a Topology response message 1905 device
          information type TLV as defined in {{bibref|IEEE1905.1a|Table 6-13:
          IEEE 802.11 specific information}}
        </description>
        <syntax>
          <hexBinary>
            <size minLength="1" maxLength="1"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="FrequencyIndex1" access="readOnly">
        <description>
          Field from Media specific information for an 802.11 interface
          provided in a Topology response message 1905 device information type
          TLV as defined in {{bibref|IEEE1905.1a|Table 6-13: IEEE 802.11
          specific information}}
        </description>
        <syntax>
          <hexBinary>
            <size minLength="1" maxLength="1"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="FrequencyIndex2" access="readOnly">
        <description>
          Field from Media specific information for an 802.11 interface
          provided in a Topology response message 1905 device information type
          TLV as defined in {{bibref|IEEE1905.1a|Table 6-13: IEEE 802.11
          specific information}}
        </description>
        <syntax>
          <hexBinary>
            <size minLength="1" maxLength="1"/>
          </hexBinary>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.NonIEEE1905Neighbor.{i}."
        access="readOnly"
        numEntriesParameter="NonIEEE1905NeighborNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.9">
      <description>
        This object represents an instance of a Non-IEEE1905 Neighbor for the
        {{object|##.IEEE1905Device}}. These fields come from a Topology
        response message as defined in {{bibref|IEEE1905.1a|Table 6-14:
        Non-1905 neighbor device TLV}}.
      </description>
      <uniqueKey functional="true">
        <parameter ref="LocalInterface"/>
        <parameter ref="NeighborInterfaceId"/>
      </uniqueKey>

      <parameter name="LocalInterface" access="readOnly">
        <description>
          {{reference}}
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong"
                targetParent="##.IEEE1905Device.{i}.Interface."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="NeighborInterfaceId" access="readOnly">
        <description>
          MAC Address of the interface for the {{object}}.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.L2Neighbor.{i}."
        access="readOnly" numEntriesParameter="L2NeighborNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.9">
      <description>
        This object represents an instance of an L2 Neighbor for the
        {{object|##.IEEE1905Device}}. These fields come from a Topology
        response message as defined in {{bibref|IEEE1905.1a|Table 6-41: L2
        neighbor device TLV}}.
      </description>
      <uniqueKey functional="true">
        <parameter ref="LocalInterface"/>
        <parameter ref="NeighborInterfaceId"/>
      </uniqueKey>

      <parameter name="LocalInterface" access="readOnly">
        <description>
          {{reference}}
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong"
                targetParent="##.IEEE1905Device.{i}.Interface."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="NeighborInterfaceId" access="readOnly">
        <description>
          MAC Address of the {{object}}.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="BehindInterfaceIds" access="readOnly">
        <description>
          {{list}} Behind MAC Addresses of the {{object}}.
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}."
        access="readOnly" numEntriesParameter="IEEE1905NeighborNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.9">
      <description>
        This object represents an instance of an {{object}} for the
        {{object|##.IEEE1905Device}}. These values are from the Topology
        response message as defined in {{bibref|IEEE1905.1a|Table 6-15: 1905
        neighbor device TLV}}.
      </description>
      <uniqueKey functional="true">
        <parameter ref="LocalInterface"/>
        <parameter ref="NeighborDeviceId"/>
      </uniqueKey>

      <parameter name="LocalInterface" access="readOnly">
        <description>
          {{reference}}
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong"
                targetParent="##.IEEE1905Device.{i}.Interface."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="NeighborDeviceId" access="readOnly">
        <description>
          1905 AL MAC Address of the Neighbor.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="MetricNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.Metric.{i}."
        access="readOnly" numEntriesParameter="MetricNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.9">
      <description>
        This object represents the metrics included in a Link metric response
        from the IEEE1905Device where {{param|#.LocalInterface}} is the MAC
        address of an interface in the receiving 1905 AL as defined in
        {{bibref|IEEE1905.1a|Table 6-17: 1905 transmitter link metric TLV}}.
      </description>
      <uniqueKey functional="true">
        <parameter ref="NeighborMACAddress"/>
      </uniqueKey>

      <parameter name="NeighborMACAddress" access="readOnly">
        <description>
          The MAC address of an interface in a neighbor 1905 device as defined
          in {{bibref|IEEE1905.1a|Table 6-17: 1905 transmitter link metric TLV
          or Table 6-19: 1905 receiver link metric TLV}}.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="IEEE802dot1Bridge" access="readOnly">
        <description>
          Indicates whether or not the 1905 link includes one or more IEEE
          802.1 bridges. If {{false}}, the 1905 link does not include an IEEE
          802.1 bridge. If {{true}}, the 1905 link does include one or more
          IEEE 802.1 bridges.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="PacketErrors" access="readOnly">
        <description>
          Estimated number of lost {{units}} on the transmit side of the link
          {{bibref|IEEE1905.1a|Table 6-18: 1905 transmitter link metrics}}
          during a measurement period.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="Packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketErrorsReceived" access="readOnly">
        <description>
          Estimated number of lost {{units}} on the receive side of the link
          {{bibref|IEEE1905.1a|Table 6-20: 1905 receiver link metrics}} during
          a measurement period.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="Packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="TransmittedPackets" access="readOnly">
        <description>
          Estimated number of {{units}} sent to the Neighbor on this link, in
          the same measurement period used to estimate {{param|PacketErrors}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="Packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" access="readOnly">
        <description>
          Estimated number of {{units}} received from this Neighbor
          {{bibref|IEEE1905.1a|Table 6-20: 1905 receiver link metrics}} on this
          link, in the same measurement period used to estimate
          {{param|PacketErrors}}.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="Packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MACThroughputCapacity" access="readOnly">
        <description>
          The maximum MAC throughput in {{units}} between this Interface and
          the Neighbor on this link that is estimated at this Interface.
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mb/s"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LinkAvailability" access="readOnly">
        <description>
          The estimated average {{units}} of time that this link is idle.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="100"/>
            <units value="percent"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="PHYRate" access="readOnly">
        <description>
          The Physical Layer (PHY) rate in {{units}} between this Interface and
          the Neighbor on this link that is estimated at this Interface.
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mb/s"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RSSI" access="readOnly">
        <description>
          The estimated Received Signal Strength Indicator (RSSI) ratio in
          {{units}} between this Interface and the Neighbor on this link that
          is estimated at the receive side of this Interface. Note: This
          parameter is valid only for IEEE 802.11 Neighbors.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
            <units value="dB"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.BridgingTuple.{i}."
        access="readOnly" numEntriesParameter="BridgingTupleNumberOfEntries"
        minEntries="0" maxEntries="unbounded" dmr:noUniqueKeys="true"
        version="2.9">
      <description>
        This object represents an instance of an {{object}} for the
        {{object|##.IEEE1905Device}}. These values come from the 1905 Device’s
        Topology response message as defined in {{bibref|IEEE1905.1a|Table
        6-11: Device bridging capability TLV}}.
      </description>

      <parameter name="InterfaceList" access="readOnly">
        <description>
          {{list}} {{reference}}
        </description>
        <syntax>
          <list/>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong"
                targetParent="##.IEEE1905Device.{i}.Interface."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IEEE1905.AL.Security." access="readOnly"
        minEntries="1" maxEntries="1" version="2.9">
      <description>
        This object represents the Security configuration for the 1905 device
        as defined in {{bibref|IEEE1905.1a|Section 9.2 Security Setup
        Methods}}.
      </description>

      <parameter name="SetupMethod" access="readWrite">
        <description>
          {{list}} Supported security setup method(s) for the network. {{enum}}
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string>
            <enumeration value="UCPK">
              <description>User Configured Passphrase or Key</description>
            </enumeration>
            <enumeration value="PBC">
              <description>Push Button Configuration</description>
            </enumeration>
            <enumeration value="NFCNK">
              <description>Near-field Communication Network Key</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="Password" access="readWrite">
        <description>
          1905 network passphrase for generating security keys.
        </description>
        <syntax secured="true">
          <string/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IEEE1905.AL.NetworkingRegistrar." access="readOnly"
        minEntries="1" maxEntries="1" version="2.9">
      <description>
        This object represents the detected Network Registrars detection
        function for the IEEE 1905 network. They are determined by received
        AP-autoconfiguration response messages with Registrar role, with
        supported band as defined in {{bibref|IEEE1905.1a|Table 6-25:
        SupportedFreqBand TLV}}
      </description>

      <parameter name="Registrar2dot4" access="readOnly">
        <description>
          {{list}} 1905 AL MAC addresses as determined by source MAC address in
          received AP-autoconfiguration response messages with supported
          frequency band of 802.11 2.4 GHz.
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="Registrar5" access="readOnly">
        <description>
          {{list}} 1905 AL MAC addresses as determined by source MAC address in
          received AP-autoconfiguration response messages with supported
          frequency band of 802.11 5 GHz.
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="Registrar60" access="readOnly">
        <description>
          {{list}} 1905 AL MAC addresses as determined by source MAC address in
          received AP-autoconfiguration response messages with supported
          frequency band of 802.11 60 GHz.
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.MQTT." access="readOnly" minEntries="1"
        maxEntries="1" dmr:fixedObject="true" version="2.10">
      <description>
        MQTT Base object describing all MQTT related parameters and objects.
      </description>

      <parameter name="ClientNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="BrokerNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.MQTT.Capabilities." access="readOnly" minEntries="1"
        maxEntries="1" dmr:fixedObject="true" version="2.10">
      <description>
        Indicates the MQTT capabilities of the device.
      </description>

      <parameter name="ProtocolVersionsSupported" access="readOnly">
        <description>
          Indicates the supported protocol versions. {{enum}}
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="3.1">
              <description>
                Protocol according to {{bibref|MQTT31}}
              </description>
            </enumeration>
            <enumeration value="3.1.1">
              <description>
                Protocol according to {{bibref|MQTT311}}
              </description>
            </enumeration>
            <enumeration value="5.0" version="2.13">
              <description>
                Protocol according to {{bibref|MQTT50}}
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="TransportProtocolSupported" access="readOnly">
        <description>
          Indicates the supported transport protocols. {{enum}}
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="TCP/IP">
              <description>Unencrypted MQTT connection</description>
            </enumeration>
            <enumeration value="TLS">
              <description>TLS encrypted MQTT connection</description>
            </enumeration>
            <enumeration value="WebSocket">
              <description>
                Unencrypted MQTT connection over a WebSocket transport
              </description>
            </enumeration>
            <enumeration value="WebSocketTLS" version="2.15">
              <description>
                TLS encrypted MQTT connection over a WebSocket transport
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="MaxNumberOfClientSubscriptions" access="readOnly">
        <description>
          Indicates the maximum number of subscriptions per MQTT client, which
          can be stored in the {{object|#.Client.{i}.Subscription}} table. A
          value of 0 means no limit.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MaxNumberOfBrokerBridges" access="readOnly">
        <description>
          Indicates the maximum number of bridges, which can be configured in
          the {{object|#.Broker.{i}.Bridge}} table. A value of 0 means no
          limit.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MaxNumberOfBrokerBridgeSubscriptions" access="readOnly">
        <description>
          Indicates the maximum number of subscriptions, which can be stored
          per bridge instance in the
          {{object|#.Broker.{i}.Bridge.{i}.Subscription}} table. A value of 0
          means no limit.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.MQTT.Client.{i}." access="readWrite"
        numEntriesParameter="ClientNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.10">
      <description>
        MQTT client table. Contains a list of configured MQTT clients.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Name"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.10">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name" access="readWrite">
        <description>
          The textual name of the MQTT client.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Enable" access="readWrite">
        <description>
          Allows to enable or disable the MQTT client.

          If a MQTT client gets enabled then the MQTT client has first to
          establish a MQTT broker session and then subscribe for all enabled
          topics in the {{object|Subscription.}} table.

          If the {{param|ProtocolVersion}} is set to
          {{enum|3.1|#.Capabilities.ProtocolVersionsSupported}} or
          {{enum|3.1.1|#.Capabilities.ProtocolVersionsSupported}} and
          {{param|CleanSession}} is set to {{false}} a subscription MUST only
          be sent for topics which haven't been subscribed before (see
          {{bibref|MQTT311|section 3.1.2.4}}).

          If the {{param|ProtocolVersion}} is set to
          {{enum|5.0|#.Capabilities.ProtocolVersionsSupported}} and
          {{param|CleanStart}} is set to {{false}} a subscription MUST only be
          sent for topics which haven't been subscribed before (see
          {{bibref|MQTT50|section 3.1.2.4}}).

          If a connected MQTT client gets disabled ({{param|Status}} is either
          {{enum|Connecting|Status}} or {{enum|Connected|Status}}) then the
          MQTT client has to send a MQTT DISCONNECT packet to disconnect from
          the MQTT broker (see {{bibref|MQTT311|section 3.14}} or
          {{bibref|MQTT50|section 3.14}}), before setting the {{param|Status}}
          to {{enum|Disabled|Status}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          Indicates the status of this MQTT client. {{enum}}

          The {{enum|Error_Misconfigured}} value indicates that a necessary
          configuration value is undefined or invalid (e.g. The MQTT client can
          not use the defined port, because it is blocked)

          The {{enum|Error_BrokerUnreachable}} value indicates that the
          connection to the MQTT broker could not be established.

          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="Connecting"/>
            <enumeration value="Connected"/>
            <enumeration value="Error_Misconfigured"/>
            <enumeration value="Error_BrokerUnreachable"/>
            <enumeration value="Error" optional="true"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite" version="2.16">
        <description>
          The IP Interface associated with the {{object}} entry.

          {{template|INTERFACE-ROUTING}}
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent=".IP.Interface."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="ProtocolVersion" access="readWrite">
        <description>
          Specifies the MQTT protocol version used in the communication with
          the MQTT broker.
        </description>
        <syntax>
          <string>
            <enumerationRef
                targetParam="#.Capabilities.ProtocolVersionsSupported"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="EnableEncryption" access="readWrite" version="2.14"
          status="deleted">
        <description>
          When {{true}}, encryption MUST be used for this MQTT {{object}}
          instance.

          {{deprecated|2.15|because it duplicates the functionality already
          handled by the {{param|TransportProtocol}} parameter}}

          {{obsoleted|2.17}}

          {{deleted|2.18}}
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="true"/>
        </syntax>
      </parameter>

      <parameter name="BrokerAddress" access="readWrite">
        <description>
          Host name or IP address of the MQTT Broker.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="BrokerPort" access="readWrite">
        <description>
          Port number of the MQTT broker.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="65535"/>
          </unsignedInt>
          <default type="object" value="1883"/>
        </syntax>
      </parameter>

      <parameter name="TransportProtocol" access="readWrite">
        <description>
          Indicates the transport protocol to be used for the MQTT broker
          connection.
        </description>
        <syntax>
          <string>
            <enumerationRef
                targetParam="#.Capabilities.TransportProtocolSupported"/>
          </string>
          <default type="object" value="TCP/IP"/>
        </syntax>
      </parameter>

      <parameter name="CleanSession" access="readWrite">
        <description>
          The value of the MQTT clean session flag in the MQTT CONNECT packet
          (see {{bibref|MQTT311|section 3.1}} and {{bibref|MQTT311|section
          3.1.2.4}}). If this flag is set to {{true}} (default), the MQTT
          broker will delete all subscription information after a Disconnect.

          {{template|MQTTReconnect}}

          This parameter only applies if {{param|ProtocolVersion}} is set to
          {{enum|3.1|#.Capabilities.ProtocolVersionsSupported}} or
          {{enum|3.1.1|#.Capabilities.ProtocolVersionsSupported}}.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="true"/>
        </syntax>
      </parameter>

      <parameter name="CleanStart" access="readWrite" version="2.13">
        <description>
          The value of the MQTT Clean Start flag in the MQTT CONNECT packet
          (see {{bibref|MQTT50|section 3.1.2.4}}. If this flag is set to
          {{true}} (default), the MQTT broker will delete all subscription
          information after a Disconnect.

          {{template|MQTTReconnect}}.

          {{template|MQTT50ONLY}}
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="true"/>
        </syntax>
      </parameter>

      <parameter name="WillEnable" access="readWrite">
        <description>
          Enables or disables the will handling (see {{bibref|MQTT311|section
          3.1}}, {{bibref|MQTT311|section 3.1.2.5}}) or {{bibref|MQTT50|section
          3.1.2.5}}).

          If the connection gets enabled and this parameter is set to {{true}}
          and either the parameter {{param|WillTopic}} or {{param|WillValue}}
          are {{empty}}, the CPE MUST set the {{param|Status}} to
          {{enum|Error_Misconfigured|Status}}.

          {{template|MQTTReconnect}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="WillQoS" access="readWrite">
        <description>
          The MQTT QoS level assigned with the will message (see
          {{bibref|MQTT311|section 3.1}}, {{bibref|MQTT311|section 3.1.2.6}})
          or {{bibref|MQTT50|section 3.1.2.6}}). This parameter is only used if
          {{param|WillEnable}} is set to {{true}}.

          {{template|MQTTWillChange}}
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="2"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="WillRetain" access="readWrite">
        <description>
          Indicate to the MQTT broker to retain the Will over a Disconnect (see
          {{bibref|MQTT311|section 3.1}}, {{bibref|MQTT311|section 3.1.2.7}})
          or {{bibref|MQTT50|section 3.1.2.7}}). This parameter is only used if
          {{param|WillEnable}} is set to {{true}}.

          {{template|MQTTWillChange}}
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="KeepAliveTime" access="readWrite">
        <description>
          Keep Alive Time in {{units}} defines the maximum wait time after
          which a packet has to be sent to the MQTT broker (see
          {{bibref|MQTT311|section 3.1}}, {{bibref|MQTT311|section 3.1.2.10}})
          or {{bibref|MQTT50|section 3.1.2.10}}). If no regular packet can be
          sent a MQTT PINGREQ packet is sent.

          A value of zero (0) means no keep alive packets are sent and the MQTT
          client is not disconnected by the server.

          {{template|MQTTReconnect}}
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="65535"/>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="60"/>
        </syntax>
      </parameter>

      <parameter name="ForceReconnect" access="readWrite"
          dmr:previousParameter="KeepAliveTime" version="2.10">
        <description>
          Disconnects the MQTT client from the MQTT broker and reconnects it
          again (toggle connection). It is only effective if the MQTT client is
          currently connected to the MQTT broker (Parameter {{param|Status|}}
          is {{enum|Connected|Status}}).

          If the MQTT client is in a different state, the parameter has no
          effect.

          This action parameter may be used to immediately apply changes in the
          MQTT connection settings.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="SessionExpiryInterval" access="readWrite"
          version="2.13">
        <description>
          Session expiry interval in {{units}} defines the wait time before a
          session expires after the connection has been closed by the MQTT
          client {{bibref|MQTT50|section 3.1.2.11.2}}).

          {{template|MQTT50ONLY}}
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ReceiveMaximum" access="readWrite" version="2.13">
        <description>
          The MQTT client uses this value to limit the number of QoS 1 and QoS
          2 publications that it is willing to process concurrently (see
          {{bibref|MQTT50|section 3.1.2.11.3}}).

          {{template|MQTTReconnect}}

          {{template|MQTT50ONLY}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MaximumPacketSize" access="readWrite" version="2.13">
        <description>
          The maximum packet size in {{units}} the MQTT client can and will
          accept from the MQTT broker. A value of 0 means no limit. If the
          value is set to another value, the MQTT client will inform the broker
          in the next CONNECT packet {{bibref|MQTT50|section 3.1.2.11.4}}).

          {{template|MQTTReconnect}}

          {{template|MQTT50ONLY}}
        </description>
        <syntax>
          <unsignedInt>
            <units value="byte"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TopicAliasMaximum" access="readWrite" version="2.13">
        <description>
          This value indicates the highest value that the MQTT client will
          accept as a Topic Alias sent by the Server (see
          {{bibref|MQTT50|section 3.1.2.11.5}}). The MQTT client uses this
          value to limit the number of Topic Aliases that it is willing to hold
          on this connection.

          A value of 0 indicates that Topic Alias is not supported.

          {{template|MQTTReconnect}}

          {{template|MQTT50ONLY}}
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RequestResponseInfo" access="readWrite" version="2.13">
        <description>
          The MQTT client uses this value in a MQTT CONNECT packet to request
          the Server to return Response Information in the MQTT CONNACK (see
          {{bibref|MQTT50|section 3.1.2.11.6}}).

          {{template|MQTTReconnect}}

          {{template|MQTT50ONLY}}
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="RequestProblemInfo" access="readWrite" version="2.13">
        <description>
          This value indicates whether the Reason String or User Properties are
          sent in the case of failures.(see {{bibref|MQTT50|section
          3.1.2.11.7}}).

          {{template|MQTTReconnect}}

          {{template|MQTT50ONLY}}
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="AuthenticationMethod" access="readWrite" version="2.13">
        <description>
          This value defines the extended authentication method to be used (see
          {{bibref|MQTT50|section 3.1.2.11.9}}).

          If the parameter is empty, no extended authentication is performed.

          {{template|MQTTReconnect}}

          {{template|MQTT50ONLY}}
        </description>
        <syntax>
          <string>
            <size minLength="0" maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ALPN" access="readWrite" version="2.19">
        <description>
          The supported protocol(s) to be advertised in a TLS handshake using
          the `Application-Layer Protocol Negotiation (ALPN)` extension as
          defined in {{bibref|RFC7301}}.

          If the parameter is empty, that is an indication that ALPN is not
          being used.

          {{template|MQTTReconnect}}
        </description>
        <syntax>
          <list/>
          <string>
            <size minLength="0" maxLength="256"/>
          </string>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>

      <parameter name="ClientID" access="readWrite">
        <description>
          The MQTT client identifier used in the MQTT CONNECT packet (see
          {{bibref|MQTT311|section 3.1}}, {{bibref|MQTT311|section 3.1.3.1}})
          or {{bibref|MQTT50|section 3.1.3.1}}).

          If {{param|ProtocolVersion}} is set to
          {{enum|3.1|#.Capabilities.ProtocolVersionsSupported}} or
          {{enum|3.1.1|#.Capabilities.ProtocolVersionsSupported}}, this
          parameter MUST NOT be an empty string.

          If {{param|ProtocolVersion}} is set to
          {{enum|5.0|#.Capabilities.ProtocolVersionsSupported}}, an empty
          string is allowed.

          {{template|MQTTReconnect}}
        </description>
        <syntax>
          <string>
            <size minLength="0" maxLength="65535"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="WillDelayInterval" access="readWrite" version="2.13">
        <description>
          The delay in {{units}} after the session is disconnected, before
          sending the Will message {{bibref|MQTT50|section 3.1.3.2.2}}). A
          value of 0 indicates that there is no delay.

          {{template|MQTTWillChange}}

          {{template|MQTT50ONLY}}
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="5"/>
        </syntax>
      </parameter>

      <parameter name="WillMessageExpiryInterval" access="readWrite"
          version="2.13">
        <description>
          The lifetime in {{units}} of a Will Message (see
          {{bibref|MQTT50|section 3.1.3.2.4}}). A value of 0 indicates that no
          message expiry interval value is specified for in the will message
          properties of a CONNECT packet.

          {{template|MQTT50ONLY}}
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="WillContentType" access="readWrite" version="2.13">
        <description>
          Describes the type of the {{param|WillValue}} {{bibref|MQTT50|section
          3.1.3.2.5}}).

          {{template|MQTTWillChange}}

          {{template|MQTT50ONLY}}
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="WillResponseTopic" access="readWrite" version="2.13">
        <description>
          Topic Name for a will response message. The presence of a Response
          Topic identifies the Will Message as a Request
          {{bibref|MQTT50|section 3.1.3.2.6}}).

          If the {{param}} is an empty string the will response topic will not
          be sent in a MQTT CONNECT packet.

          {{template|MQTTWillChange}}

          {{template|MQTT50ONLY}}
        </description>
        <syntax>
          <string>
            <size maxLength="65535"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="WillTopic" access="readWrite">
        <description>
          The Topic sent in the Will Message (see {{bibref|MQTT311|section
          3.1}}, {{bibref|MQTT311|section 3.1.3.3}}) or {{bibref|MQTT50|section
          3.1.3.3}}). This parameter is only used if {{param|WillEnable}} is
          set to {{true}}.

          {{template|MQTTWillChange}}
        </description>
        <syntax>
          <string>
            <size maxLength="65535"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="WillValue" access="readWrite">
        <description>
          The value sent in the Will Message (see {{bibref|MQTT311|section
          3.1}}, {{bibref|MQTT311|section 3.1.2.5}}) or {{bibref|MQTT50|section
          3.1.3.4}}). This parameter is only used if {{param|WillEnable}} is
          set to {{true}}.

          {{template|MQTTWillChange}}
        </description>
        <syntax>
          <string>
            <size maxLength="65535"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Username" access="readWrite">
        <description>
          Username used to authenticate the MQTT client when making a
          connection to the MQTT broker. The value is sent in the MQTT CONNECT
          packet (see {{bibref|MQTT311|section 3.1}}, {{bibref|MQTT311|section
          3.1.3.4}} or {{bibref|MQTT50|section 3.1.3.5}}).

          If this parameter is {{empty}} no authentication parameters are sent
          in the MQTT CONNECT packet.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Password" access="readWrite">
        <description>
          Password used to authenticate the MQTT client when making a
          connection to the MQTT broker. The value is sent in the MQTT CONNECT
          packet (see {{bibref|MQTT311|section 3.1}}, {{bibref|MQTT311|section
          3.1.3.5}} or {{bibref|MQTT50|section 3.1.3.6}}).

          This password is only sent in the MQTT CONNECT packet if
          {{param|Username}} is not {{empty}}.
        </description>
        <syntax secured="true">
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="PublishMessageExpiryInterval" access="readWrite"
          version="2.13">
        <description>
          The lifetime in {{units}} of a PUBLISH Message (see
          {{bibref|MQTT50|section 3.3.2.3.3}}). A value of 0 indicates that no
          message expiry interval value is included in the PUBLISH packet.

          {{template|MQTT50ONLY}}
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MessageRetryTime" access="readWrite">
        <description>
          Message retry time in {{units}} defines the wait time before a MQTT
          message that expects a response (QoS value of message is &gt; 0, or
          PUBLISH, PUBREL, SUBSCRIBE, UNSUBSCRIBE message) is resent, because
          the response is not received (see {{bibref|MQTT311|section 4.2}}).

          This parameter only applies if {{param|ProtocolVersion}} is set to
          {{enum|3.1|#.Capabilities.ProtocolVersionsSupported}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="5"/>
        </syntax>
      </parameter>

      <parameter name="ConnectRetryTime" access="readWrite">
        <description>
          Connect retry time in {{units}} defines the wait time before a failed
          MQTT broker connection is retried.

          A failure can either be on the connection level (the TCP/IP or TLS
          can not be established) or on the Protocol level, the MQTT client
          does not receive a MQTT CONNACK packet on a MQTT CONNECT packet sent.

          If the parameter {{param|ConnectRetryIntervalMultiplier}} is defined,
          the MQTT client MUST use a random value between
          {{param}}*({{param|ConnectRetryIntervalMultiplier}}/1000)^(n-1)^ and
          {{param}}*({{param|ConnectRetryIntervalMultiplier}}/1000)^n^ for the
          connect retry time, with n equals the current retry number. The max
          number of n is 10, starting with the 11th retry always the value n =
          10 is used.

          If the parameters {{param|ConnectRetryIntervalMultiplier}} and
          {{param|ConnectRetryMaxInterval}} are defined, the MQTT client MUST
          use the value of {{param|ConnectRetryMaxInterval}} if the calculated
          random value exceeds the value of {{param|ConnectRetryMaxInterval}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="5"/>
        </syntax>
      </parameter>

      <parameter name="ConnectRetryIntervalMultiplier" access="readWrite"
          version="2.13">
        <description>
          Configures the retry interval multiplier.

          This value is expressed in units of 0.001. Hence the values of the
          multiplier range between 1.000 and 65.535.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1000" maxInclusive="65535"/>
          </unsignedInt>
          <default type="object" value="2000"/>
        </syntax>
      </parameter>

      <parameter name="ConnectRetryMaxInterval" access="readWrite"
          version="2.13">
        <description>
          The maximum reconnection wait interval, in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="30720"/>
        </syntax>
      </parameter>

      <parameter name="ResponseInformation" access="readOnly" version="2.13">
        <description>
          The value of the CONNACK Response Information property supplied by a
          MQTT 5.0 server. This value is used by a MQTT 5.0 client as the basis
          for the PUBLISH Response Topic property for all PUBLISH packets that
          expect a response. If the value of {{param}} is not a subset
          (wildcarded or precise match) of any of the
          {{param|Subscription.{i}.Topic}} values the MQTT client MUST
          subscribe to this Topic.
        </description>
        <syntax>
          <string>
            <size maxLength="65535"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SubscriptionNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="UserPropertyNumberOfEntries" access="readOnly"
          version="2.13">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.MQTT.Client.{i}.Subscription.{i}." access="readWrite"
        numEntriesParameter="SubscriptionNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded"
        version="2.10">
      <description>
        List of MQTT subscriptions handled by the MQTT client.

        The MQTT client MUST subscribe with the MQTT broker for all
        subscription instances, whose parameter {{param|Enable}} is set to
        {{true}}, when it establishes a new connection to the MQTT broker.
        Disabled subscription instances with {{param|Enable}} set to {{false}}
        will be ignored during connection establishment.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="Topic"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.10">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Enable" access="readWrite">
        <description>
          When a MQTT client connects to a MQTT server, it MUST send a
          SUBSCRIBE message including all instances with {{param}} set to
          {{true}}. If the MQTT client is already connected with the MQTT
          server ({{param|#.Status}} is {{enum|Connected|#.Status}}), a MQTT
          SUBSCRIBE or UNSUBSCRIBE message MUST be sent directly when {{param}}
          is changed to {{true}} or {{false}}, respectively.

          The actual status of the subscription is indicated with
          {{param|Status}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          Indicates the status of this subscription. {{enum}}

          The {{enum|Subscribed}} value indicates that the topic was
          successfully subscribed with the MQTT broker, the MQTT client
          received the SUBACK message for this topic from the server.

          The {{enum|Subscribing}} value MAY be used by the CPE to indicate
          that the a SUBSCRIBE message for this topic was sent, and the CPE is
          waiting for a SUBACK message.

          The {{enum|Unsubscribed}} value indicates that the topic is not
          registered with the MQTT broker.

          The {{enum|Unsubscribing}} value MAY be used by the CPE to indicate
          that an UNSUBSCRIBE message for this topic was sent, and the CPE is
          waiting for an UNSUBACK message.

          If the {{param|Enable}} is set to {{false}} the status MUST be either
          {{enum|Unsubscribed}} or if the unsubscription failed {{enum|Error}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Unsubscribed"/>
            <enumeration value="Subscribed"/>
            <enumeration value="Subscribing" optional="true"/>
            <enumeration value="Unsubscribing" optional="true"/>
            <enumeration value="Error"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Topic" access="readWrite">
        <description>
          Name of the subscribed topic. Topic names may contain wildcards
          according to the rules specified in {{bibref|MQTT311|section Appendix
          A}}, {{bibref|MQTT311|section 4.7}} or {{bibref|MQTT50|4.7}}.
        </description>
        <syntax>
          <string>
            <size maxLength="65535"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="QoS" access="readWrite">
        <description>
          The MQTT QoS level assigned with the subscription (see
          {{bibref|MQTT311|section 4.1}}, {{bibref|MQTT311|section 4.3}}) or
          {{bibref|MQTT50|4.3}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="2"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.MQTT.Client.{i}.UserProperty.{i}." access="readWrite"
        numEntriesParameter="UserPropertyNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded"
        version="2.13">
      <description>
        List of user properties used by the MQTT client.

        This table only applies if {{param|#.ProtocolVersion}} is set to
        {{enum|5.0|##.Capabilities.ProtocolVersionsSupported}}.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="Name"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.13">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Enable" access="readWrite">
        <description>
          Setting Enable to {{true}} means the user property is used in the
          indicated control packet(s). The user property will be applied to all
          control packets of the same control packet type (e.g PUBLISH).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Name" access="readWrite">
        <description>
          Name of the user property
        </description>
        <syntax>
          <string>
            <size maxLength="65535"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Value" access="readWrite">
        <description>
          Value of the user property
        </description>
        <syntax>
          <string>
            <size maxLength="65535"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="PacketType" access="readWrite">
        <description>
          {{list}} Each entry defines the control packet type(s) in which the
          user property is included.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="AUTH">
              <description>
                User property will be added in the AUTH control packet (see
                {{bibref|MQTT50|section 3.15.2.2.5}})
              </description>
            </enumeration>
            <enumeration value="CONNECT">
              <description>
                User property will be added in the CONNECT packet (see
                {{bibref|MQTT50|section 3.1.3.2.8}})
              </description>
            </enumeration>
            <enumeration value="DISCONNECT">
              <description>
                User property will be added in the DISCONNECT packet (see
                {{bibref|MQTT50|section 3.14.2.2.4}})
              </description>
            </enumeration>
            <enumeration value="PUBLISH">
              <description>
                User property will be added in the PUBLISH packet (see
                {{bibref|MQTT50|section 3.3.2.3.7}})
              </description>
            </enumeration>
            <enumeration value="PUBACK">
              <description>
                User property will be added in the PUBACK packet (see
                {{bibref|MQTT50|section 3.4.2.2.3}})
              </description>
            </enumeration>
            <enumeration value="PUBREC">
              <description>
                User property will be added in the PUBREC packet (see
                {{bibref|MQTT50|section 3.5.2.2.3}})
              </description>
            </enumeration>
            <enumeration value="PUBREL">
              <description>
                User property will be added in the PUBREL packet (see
                {{bibref|MQTT50|section 3.6.2.2.3}})
              </description>
            </enumeration>
            <enumeration value="PUBCOMP">
              <description>
                User property will be added in the PUBCOMP packet (see
                {{bibref|MQTT50|section 3.7.2.2.3}})
              </description>
            </enumeration>
            <enumeration value="SUBSCRIBE">
              <description>
                User property will be added in the SUBSCRIBE packet (see
                {{bibref|MQTT50|section 3.8.2.1.3}})
              </description>
            </enumeration>
            <enumeration value="UNSUBSCRIBE">
              <description>
                User property will be added in the UNSUBSCRIBE packet (see
                {{bibref|MQTT50|section 3.10.2.1.2}})
              </description>
            </enumeration>
            <enumeration value="WILL">
              <description>
                User property will be added in the WILL properties (see
                {{bibref|MQTT50|section 3.1.3.2}})
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.MQTT.Client.{i}.Stats." access="readOnly"
        minEntries="1" maxEntries="1" version="2.10">
      <description>
        Contains the MQTT client statistics and usage information.

        The CPE MUST reset the Stats parameters after the MQTT client gets
        (re-)enabled or if the MQTT client connects with a new MQTT broker
        (e.g. {{param|#.BrokerAddress}} has changed). The CPE MAY retain the
        values across a reboot if it reconnects with the same MQTT broker.
      </description>

      <parameter name="BrokerConnectionEstablished" access="readOnly"
          activeNotify="canDeny">
        <description>
          Time when the MQTT broker connection was established.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="LastPublishMessageSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          Time when the last publish message was sent to the MQTT broker.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="LastPublishMessageReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          Time when the last publish message was received from the MQTT broker.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="PublishSent" access="readOnly" activeNotify="canDeny">
        <description>
          Number of publish messages sent to the MQTT broker.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="PublishReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          Number of publish messages received from to the MQTT broker.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="SubscribeSent" access="readOnly" activeNotify="canDeny">
        <description>
          Number of subscribe messages sent to the MQTT broker.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="UnSubscribeSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          Number of unsubscribe messages sent to the MQTT broker.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="MQTTMessagesSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          Total number of MQTT messages sent to the MQTT broker.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="MQTTMessagesReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          Total number of MQTT messages received from the MQTT broker.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="ConnectionErrors" access="readOnly"
          activeNotify="canDeny">
        <description>
          Number of connection errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="PublishErrors" access="readOnly">
        <description>
          Number of errors which prevented sending publish messages.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.MQTT.Broker.{i}." access="readWrite"
        numEntriesParameter="BrokerNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.10">
      <description>
        MQTT broker table. Contains a list of configured MQTT brokers.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Name"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.10">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name" access="readWrite">
        <description>
          The textual name of the MQTT broker.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Enable" access="readWrite">
        <description>
          Allows to enable or disable the MQTT broker.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          Indicates the status of the MQTT broker. {{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>
        </syntax>
      </parameter>

      <parameter name="Port" access="readWrite">
        <description>
          Port used by the MQTT Broker.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="65535"/>
          </unsignedInt>
          <default type="object" value="1883"/>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite">
        <description>
          If {{empty}} is specified, the CPE MUST bind the MQTT broker to all
          available interfaces.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="##.IP.Interface."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Username" access="readWrite">
        <description>
          User name used to authenticate the MQTT clients, which connect to the
          MQTT broker.

          If this parameter is {{empty}} no authentication is used.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Password" access="readWrite">
        <description>
          Password used used to authenticate the MQTT clients, which connect to
          the MQTT broker.

          This password is only used if {{param|Username}} is not {{empty}}.
        </description>
        <syntax secured="true">
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="BridgeNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.MQTT.Broker.{i}.Bridge.{i}." access="readWrite"
        numEntriesParameter="BridgeNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.10">
      <description>
        Configures MQTT bridges, which are used to communicate with other MQTT
        brokers.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Name"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.10">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name" access="readWrite">
        <description>
          The textual name of the MQTT bridge used for identification.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Enable" access="readWrite">
        <description>
          Allows to enable or disable the MQTT Bridge.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          Indicates the status of this MQTT Bridge. {{enum}}

          The {{enum|Disabled}} value indicates that the MQTT bridge is not in
          service; parameter {{param|Enable}} is set to {{false}}.

          The {{enum|Connecting}} value indicates that the MQTT bridge is
          currently established.

          The {{enum|Connected}} value indicates that the MQTT bridge is
          currently active.

          The {{enum|Error_Misconfigured}} value indicates that a necessary
          configuration value is undefined or invalid (e.g. No active Server
          entry, the MQTT broker can not use the defined bridge port, because
          it is blocked)

          The {{enum|Error_BrokerUnreachable}} value indicates that the MQTT
          bridge connection to the remote MQTT broker could not be established.

          The {{enum|Error}} value MAY be used to indicate a locally defined
          error condition.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Connecting"/>
            <enumeration value="Connected"/>
            <enumeration value="Enabled" status="deleted">
              <description>
                {{deleted|2.11|because it's covered by {{enum|Connecting}} and
                {{enum|Connected}}}}
              </description>
            </enumeration>
            <enumeration value="Error_Misconfigured"/>
            <enumeration value="Error_BrokerUnreachable"/>
            <enumeration value="Error" optional="true"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ProtocolVersion" access="readWrite">
        <description>
          Specifies the MQTT protocol version used in the MQTT bridge
          connection.
        </description>
        <syntax>
          <string>
            <enumerationRef
                targetParam="##.Capabilities.ProtocolVersionsSupported"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="TransportProtocol" access="readWrite">
        <description>
          Indicates the transport protocol to be used for the MQTT bridge
          connection.
        </description>
        <syntax>
          <string>
            <enumerationRef
                targetParam="##.Capabilities.TransportProtocolSupported"/>
          </string>
          <default type="object" value="TCP/IP"/>
        </syntax>
      </parameter>

      <parameter name="CleanSession" access="readWrite">
        <description>
          The value of the MQTT clean session flag in the MQTT CONNECT packet
          (see {{bibref|MQTT311|section 3.1}} and {{bibref|MQTT311|section
          3.1.2.4}}) to establish a MQTT bridge connection. If this flag is set
          to {{true}} (default), the remote MQTT broker will delete all
          subscription information after a Disconnect.

          {{template|MQTTReconnect}}

          This parameter only applies if {{param|ProtocolVersion}} is set to
          {{enum|3.1|##.Capabilities.ProtocolVersionsSupported}} or
          {{enum|3.1.1|##.Capabilities.ProtocolVersionsSupported}}.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="true"/>
        </syntax>
      </parameter>

      <parameter name="CleanStart" access="readWrite" version="2.13">
        <description>
          The value of the MQTT Clean Start flag in the MQTT CONNECT packet
          (see {{bibref|MQTT50|section 3.1.2.4}} to establish a MQTT bridge
          connection. If this flag is set to {{true}} (default), the remote
          MQTT broker will delete all subscription information after a
          Disconnect.

          {{template|MQTTReconnect}}.

          This parameter only applies if {{param|ProtocolVersion}} is set to
          {{enum|5.0|##.Capabilities.ProtocolVersionsSupported}}.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="true"/>
        </syntax>
      </parameter>

      <parameter name="KeepAliveTime" access="readWrite">
        <description>
          Keep Alive Time in {{units}} defines the maximum wait time after
          which a packet has to be sent to the remote MQTT broker (see
          {{bibref|MQTT311|section 3.1}}, {{bibref|MQTT311|section 3.1.2.10}})
          or {{bibref|MQTT50|section 3.1.2.10}}). If no regular packet can be
          sent a MQTT PINGREQ packet is sent.

          A value of zero (0) means no keep alive packets are sent and the
          bridge is not disconnected by the server.

          {{template|MQTTReconnect}}
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="65535"/>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="60"/>
        </syntax>
      </parameter>

      <parameter name="ForceReconnect" access="readWrite"
          dmr:previousParameter="KeepAliveTime" version="2.10">
        <description>
          Disconnects the MQTT bridge to the remote MQTT broker and reconnects
          it again (toggle connection). It is only effective if the MQTT bridge
          is currently connected to the remote MQTT broker (Parameter
          {{param|Status|}} is {{enum|Connected|Status}}).

          If the MQTT bridge is in a different state, the parameter has no
          effect.

          This action parameter may be used to immediately apply changes in the
          MQTT connection settings.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="ClientID" access="readWrite">
        <description>
          The MQTT client identifier used in the CONNECT packet (see
          {{bibref|MQTT311|section 3.1}}, {{bibref|MQTT311|section 3.1.3.1}})
          or {{bibref|MQTT50|section 3.1.3.1}}).

          If {{param|ProtocolVersion}} is set to
          {{enum|3.1|##.Capabilities.ProtocolVersionsSupported}} or
          {{enum|3.1.1|##.Capabilities.ProtocolVersionsSupported}}, this
          parameter MUST NOT be an empty string.

          If {{param|ProtocolVersion}} is set to
          {{enum|5.0|##.Capabilities.ProtocolVersionsSupported}}, an empty
          string is allowed.

          {{template|MQTTReconnect}}
        </description>
        <syntax>
          <string>
            <size minLength="0" maxLength="65535"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Username" access="readWrite">
        <description>
          User name used to authenticate the MQTT broker when making a
          connection over the MQTT bridge. The value is sent in the MQTT
          CONNECT packet (see {{bibref|MQTT311|section 3.1}},
          {{bibref|MQTT311|section 3.1.3.4}} or {{bibref|MQTT50|section
          3.1.3.5}}).

          If this parameter is {{empty}} no authentication parameters are sent
          in the MQTT CONNECT packet.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Password" access="readWrite">
        <description>
          Password used to authenticate the MQTT broker when making a
          connection over the MQTT bridge. The value is sent in the MQTT
          CONNECT packet (see {{bibref|MQTT311|section 3.1}},
          {{bibref|MQTT311|section 3.1.3.5}} or {{bibref|MQTT50|section
          3.1.3.6}}).

          This password is only sent in the MQTT CONNECT packet if
          {{param|Username}} is not {{empty}}.
        </description>
        <syntax secured="true">
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="MessageRetryTime" access="readWrite">
        <description>
          Message retry time in {{units}} defines the wait time before a MQTT
          message that expects a response (QoS value of message is &gt; 0, or
          PUBLISH, PUBREL, SUBSCRIBE, UNSUBSCRIBE message) is resent, because
          the response is not received (see {{bibref|MQTT311|section 4.2}}.

          This parameter only applies if {{param|ProtocolVersion}} is set to
          {{enum|3.1|##.Capabilities.ProtocolVersionsSupported}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="5"/>
        </syntax>
      </parameter>

      <parameter name="ConnectRetryTime" access="readWrite">
        <description>
          Connect retry time in {{units}} defines the wait time before a failed
          bridge connection is retried.

          A failure can either be on the connection level (e.g. the TCP/IP or
          TLS connection can not be established) or on the Protocol level, the
          MQTT client does not receive a MQTT CONNACK packet on a MQTT CONNECT
          packet sent.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="30"/>
        </syntax>
      </parameter>

      <parameter name="ServerSelectionAlgorithm" access="readWrite">
        <description>
          The algorithm used to select a server entry from the
          {{object|Server}} table
        </description>
        <syntax>
          <string>
            <enumeration value="Priority">
              <description>
                Select the server from the {{object|Server.}} table according
                to the sequence defined with the {{param|Server.{i}.Priority}}
                and {{param|Server.{i}.Weight}} values.
              </description>
            </enumeration>
            <enumeration value="RoundRobin">
              <description>Select the servers round robin.</description>
            </enumeration>
            <enumeration value="Random">
              <description>Select the servers randomly.</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="ServerConnection" access="readOnly">
        <description>
          {{reference|the {{object|Server.}} instance that is used for this
          {{object}}, while the {{param|Status}} is {{enum|Connecting|Status}}
          or {{enum|Connected|Status}}. If the MQTT bridge is not connected the
          value MUST be an empty string}}
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="#.Bridge.{i}.Server."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ServerNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SubscriptionNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.MQTT.Broker.{i}.Bridge.{i}.Server.{i}."
        access="readWrite" numEntriesParameter="ServerNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded"
        version="2.10">
      <description>
        Each {{object}} instance represents a MQTT bridge server to be used for
        a {{object|##.Bridge}}. A remote MQTT broker, which is connected by a
        MQTT bridge can be reachable via several host addresses each
        represented by its own {{object}} table entry. For an active MQTT
        bridge at least one enabled entry has to exist.

        If a MQTT bridge gets enabled by setting the parameter
        {{param|##.Bridge.{i}.Enable}} to {{true}}, which either has an empty
        {{object}} table or the {{object}} table only contains instances whose
        {{param|Enable}} is set to {{false}}, the
        {{param|##.Bridge.{i}.Status}} has to be set to
        {{enum|Error_Misconfigured|##.Bridge.{i}.Status}}.

        Any attempt to delete an instance, which is currently in use
        ({{param|##.Bridge.{i}.ServerConnection}} refers to the instance to be
        deleted), has to be rejected.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="Address"/>
        <parameter ref="Port"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables this {{object}}.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Alias" access="readWrite" version="2.10">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Priority" access="readWrite">
        <description>
          The priority of this {{object}} that is used by the
          {{object|##.Bridge}} when determining the {{object}} to connect to.
          The {{object|##.Bridge}} MUST contact the {{object}} with the
          lowest-numbered priority that the {{object|##.Bridge}} can reach as
          defined in {{bibref|RFC2782}}. The selection of {{object}}s with the
          same {{param}} value utilizes the {{param|Weight}} parameter to
          determine which {{object}} is selected by the {{object|##.Bridge}}.

          This value is only used if
          {{param|##.Bridge.{i}.ServerSelectionAlgorithm}} is set to
          {{enum|Priority|##.Bridge.{i}.ServerSelectionAlgorithm}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Weight" access="readWrite">
        <description>
          This parameter specifies a relative weight for entries with the same
          {{param|Priority}}. The mechanism is defined in {{bibref|RFC2782}}. A
          value of -1 indicates that the implementation of this parameter is
          specific to the Vendor.

          This value is only used if
          {{param|##.Bridge.{i}.ServerSelectionAlgorithm}} is set to
          {{enum|Priority|##.Bridge.{i}.ServerSelectionAlgorithm}}.
        </description>
        <syntax>
          <long>
            <range minInclusive="-1" maxInclusive="65535"/>
          </long>
        </syntax>
      </parameter>

      <parameter name="Address" access="readWrite">
        <description>
          Fully Qualified Domain Name (FQDN) or IP address of the MQTT broker
          server this {{object|##.Bridge}} connects to.

          If the value of this parameter is a FQDN that resolves to multiple
          addresses then each address SHOULD be attempted (in an
          implementation-specific order) until a connection can be made or all
          addresses are exhausted, in which case the next {{object}} instance
          (based on rules defined over the selected
          {{param|##.Bridge.{i}.ServerSelectionAlgorithm}}) SHOULD be used.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Port" access="readWrite">
        <description>
          Port number of the MQTT broker server this {{object|##.Bridge}}
          connects to.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="65535"/>
          </unsignedInt>
          <default type="object" value="1883"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.MQTT.Broker.{i}.Bridge.{i}.Subscription.{i}."
        access="readWrite" numEntriesParameter="SubscriptionNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded"
        version="2.10">
      <description>
        List of MQTT subscriptions handled over the bridge.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="Topic"/>
        <parameter ref="Direction"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.10">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Enable" access="readWrite">
        <description>
          Setting Enable to {{true}} activates the handling of this
          subscription instance. In case of incoming directions
          ({{param|Direction}} is either {{enum|in|Direction}} or
          {{enum|both|Direction}}) the topic is subscribed over the bridge at
          the remote MQTT broker with a MQTT SUBSCRIBE message if {{param}} is
          set to {{true}} or unsubscribed from the remote MQTT broker with a
          MQTT UNSUBSCRIBE message if the value is set to {{false}}.

          The actual status of the subscription is indicated with
          {{param|Status}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          Indicates the status of this subscription. {{enum}}

          The {{enum|Enabled}} value indicates that the this subscription is
          active. In case of incoming directions ({{param|Direction}} is either
          {{enum|in|Direction}} or {{enum|both|Direction}}) the topic was
          successfully subscribed with the remote MQTT broker.

          The {{enum|Disabled}} value indicates that this subscription is not
          used.

          The {{enum|Error}} value indicates that an error occurred (e.g. an
          subscription could not be made with the remote MQTT broker) and the
          subscription is not in use.
        </description>
        <syntax>
          <string>
            <enumeration value="Enabled"/>
            <enumeration value="Disabled"/>
            <enumeration value="Error"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Topic" access="readWrite">
        <description>
          Name of the subscribed topic. Topic names may contain wildcards
          according to the rules specified in {{bibref|MQTT311|section Appendix
          A}}, {{bibref|MQTT311|section 4.7}} or {{bibref|MQTT50|4.7}}.
        </description>
        <syntax>
          <string>
            <size maxLength="65535"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Direction" access="readWrite">
        <description>
          The direction of the subscription. {{enum}}.
        </description>
        <syntax>
          <string>
            <enumeration value="out">
              <description>
                Indicates that all matching topics will be sent over the bridge
                to the next MQTT broker.
              </description>
            </enumeration>
            <enumeration value="in">
              <description>
                Indicates that all matching topics will be received over the
                bridge from the next MQTT broker.
              </description>
            </enumeration>
            <enumeration value="both">
              <description>
                Indicates that all matching topics will be sent and received
                over the bridge.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="QoS" access="readWrite">
        <description>
          The MQTT QoS level assigned with the subscription (see
          {{bibref|MQTT311|section 4.1}}, {{bibref|MQTT311|section 4.3}}) or
          {{bibref|MQTT50|4.3}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="2"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LocalPrefix" access="readWrite">
        <description>
          The local prefix is used for remapping received topics to the local
          topics of the MQTT broker and to select the topics to be sent over
          bridge to the remote MQTT broker.

          * In incoming direction ({{param|Direction}} is either
            {{enum|in|Direction}} or {{enum|both|Direction}}):

          : For remote topics received over the bridge the MQTT broker adds the
            LocalPrefix in front of the received topic, before processing it.

          :: '' ''

          : ''Example:''

          :: Topic is "/bus/+", LocalPrefix is "/local", Direction is "in"

          :: MQTT broker receives message with topic "/bus/tr181" over bridge
             =&gt; MQTT broker uses topic "/local/bus/tr181" for internal
             processing

          * In outgoing direction ({{param|Direction}} is either
            {{enum|out|Direction}} or {{enum|both|Direction}}):

          : For selection of the topics to be sent over the bridge the MQTT
            broker uses the combination of {{param}} and {{param|Topic}} to
            match the topics to be sent over bridge, and removes the {{param}}
            from the selected topic before sending it over the bridge.

          :: '' ''

          : ''Example:''

          :: Topic is "/bus/+", LocalPrefix is "/local", Direction is "out"

          :: MQTT broker receives message with topic "/local/bus/tr181" from a
             MQTT client =&gt; MQTT broker sends topic "/bus/tr181" to remote
             MQTT broker
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="RemotePrefix" access="readWrite">
        <description>
          The remote prefix is used for remapping topics to the remote MQTT
          broker topic lists.

          * In incoming direction ({{param|Direction}} is either
            {{enum|in|Direction}} or {{enum|both|Direction}}):

          : For remote topics received over the bridge the MQTT broker removes
            the remote prefix topic from the received topic (before handling
            the {{param|LocalPrefix}}), before processing it.

          :: '' ''

          : ''Example:''

          :: Topic is "/bus/+", LocalPrefix is "/local", RemotePrefix is
             "/remote", Direction is "in"

          :: MQTT broker receives message with topic "/remote/bus/tr181" over
             bridge =&gt; MQTT broker uses topic "/local/bus/tr181" for
             internal processing

          : During activation of the bridge, the MQTT broker prepends the
            {{param|Topic}} with {{param}} topic and subscribes to the remote
            MQTT broker with it, in order to receive all applicable remote
            topics.

          :: '' ''

          : ''Example:''

          :: Topic is "/bus/+", RemotePrefix is "/remote", Direction is "in"

          :: MQTT broker sends a subscription to the remote MQTT broker with
             the topic "/remote/bus/+".

          * In outgoing direction ({{param|Direction}} is either
            {{enum|out|Direction}} or {{enum|both|Direction}}):

          : For all topics to be sent over the bridge ({{param|Direction}} is
            either {{enum|out|Direction}} or {{enum|both|Direction}}), the
            RemotePrefix will be prepended to the topic after the
            {{param|LocalPrefix}} has been processed and before sending the
            message over the bridge.

          :: '' ''

          : ''Example:''

          :: Topic is "/bus/+", LocalPrefix is "/local", RemotePrefix is
             "/remote" Direction is "out"

          :: MQTT broker receives message with topic "/local/bus/tr181" from a
             MQTT client =&gt; MQTT broker sends topic "/remote/bus/tr181" to
             remote MQTT broker
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.MQTT.Broker.{i}.Stats." access="readOnly"
        minEntries="1" maxEntries="1" version="2.10">
      <description>
        The MQTT broker statistics values. These will reset with each MQTT
        broker start, either after reboot or if the MQTT broker gets
        (re-)enabled.
      </description>

      <parameter name="TotalNumberOfClients" access="readOnly">
        <description>
          Total number of MQTT clients registered with the MQTT broker.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="NumberOfActiveClients" access="readOnly">
        <description>
          Number of MQTT clients, which have a connection with the MQTT broker
          established.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="NumberOfInactiveClients" access="readOnly">
        <description>
          Number of MQTT clients, which have no connection with the MQTT broker
          established.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="Subscriptions" access="readOnly" activeNotify="canDeny">
        <description>
          Number of subscriptions held by the MQTT broker.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PublishSent" access="readOnly" activeNotify="canDeny">
        <description>
          Number of publish messages sent by the MQTT broker.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="PublishReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          Number of publish messages received by the MQTT broker.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="MQTTMessagesSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          Total number of MQTT messages sent by the MQTT broker.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="MQTTMessagesReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          Total number of MQTT messages received by the MQTT broker.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="ConnectionErrors" access="readOnly"
          activeNotify="canDeny">
        <description>
          Number of connection errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="PublishErrors" access="readOnly">
        <description>
          Number of errors which prevented sending publish messages
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DynamicDNS." access="readOnly" minEntries="1"
        maxEntries="1" version="2.10">
      <description>
        Properties for Dynamic DNS.
      </description>

      <parameter name="ClientNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ServerNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SupportedServices" access="readOnly">
        <description>
          List of Dynamic DNS service names that are supported by the CPE.
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DynamicDNS.Client.{i}." access="readWrite"
        numEntriesParameter="ClientNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.10">
      <description>
        Client properties for Dynamic DNS.

        A dynamic DNS client is responsible for verifying IP address changes
        and updating information from a subscribed account on a Dynamic DNS
        Server.

        For enabled table entries, if {{param|Server}} is not a valid reference
        then the table entry is inoperable and the CPE MUST set the
        {{param|Status}} to {{enum|Error_Misconfigured|Status}}.
      </description>
      <uniqueKey functional="true">
        <parameter ref="Server"/>
        <parameter ref="Username"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables this Dynamic DNS Client.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          Status of this Dynamic DNS Client.
        </description>
        <syntax>
          <string>
            <enumeration value="Connecting">
              <description>
                The Dynamic DNS Client is trying to connect to the Server.
              </description>
            </enumeration>
            <enumeration value="Authenticating">
              <description>
                The Dynamic DNS Client is in the authentication phase.
              </description>
            </enumeration>
            <enumeration value="Updated">
              <description>
                The Dynamic DNS Client has performed an update request since
                the last IP address change.
              </description>
            </enumeration>
            <enumeration value="Error_Misconfigured">
              <description>Error due to configuration.</description>
            </enumeration>
            <enumeration value="Error">
              <description>
                An error has occurred during the communication with the Server.
                The {{param|LastError}} parameter is updated with the detail of
                this error.
              </description>
            </enumeration>
            <enumeration value="Disabled">
              <description>The Client is disabled.</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="Alias" access="readWrite" version="2.10">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="LastError" access="readOnly">
        <description>
          The last error this Dynamic DNS Client has encountered.

          The parameter MAY instead indicate a vendor-specific cause, which
          MUST use the format defined in {{bibref|TR-106}}.
        </description>
        <syntax>
          <string>
            <enumeration value="NO_ERROR"/>
            <enumeration value="MISCONFIGURATION_ERROR"/>
            <enumeration value="DNS_ERROR"/>
            <enumeration value="CONNECTION_ERROR"/>
            <enumeration value="AUTHENTICATION_ERROR"/>
            <enumeration value="TIMEOUT_ERROR"/>
            <enumeration value="PROTOCOL_ERROR"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Server" access="readWrite">
        <description>
          The DynamicDNS server associated with this Dynamic DNS Client.

          {{reference}}
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="#.Server."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite">
        <description>
          The IP interface over which update queries to the server are sent.

          {{template|INTERFACE-ROUTING}}

          {{reference}}
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="##.IP.Interface."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Username" access="readWrite">
        <description>
          Username used by this Dynamic DNS Client to authenticate with the
          Server.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Password" access="readWrite">
        <description>
          Password used by this Dynamic DNS Client to authenticate with the
          Server.
        </description>
        <syntax secured="true">
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="HostnameNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DynamicDNS.Client.{i}.Hostname.{i}."
        access="readWrite" numEntriesParameter="HostnameNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded"
        version="2.10">
      <description>
        Each table entry represents a fully qualified domain name updated by
        this Dynamic DNS Client.
      </description>
      <uniqueKey functional="true">
        <parameter ref="Name"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables this Hostname.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          Status of this Hostname.
        </description>
        <syntax>
          <string>
            <enumeration value="Registered">
              <description>
                The Hostname has been updated with the current IP address.
              </description>
            </enumeration>
            <enumeration value="UpdateNeeded">
              <description>
                The IP address has changed since last update.
              </description>
            </enumeration>
            <enumeration value="Updating">
              <description>
                The Client is trying to update this Hostname.
              </description>
            </enumeration>
            <enumeration value="Error">
              <description>
                The Hostname doesn't exist for this Dynamic DNS account.
              </description>
            </enumeration>
            <enumeration value="Disabled">
              <description>The Hostname is disabled.</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="Name" access="readWrite">
        <description>
          Fully qualified domain name that has to be updated with the IP
          address.

          If the name is set to another value, the Client MUST immediately send
          an update request to the Server.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastUpdate" access="readOnly">
        <description>
          The date time of the last successful update of this name to the
          Dynamic DNS Server.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DynamicDNS.Server.{i}." access="readWrite"
        numEntriesParameter="ServerNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.10">
      <description>
        Table of Dynamic DNS servers available for this CPE.
      </description>
      <uniqueKey functional="true">
        <parameter ref="Name"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables Dynamic DNS Server.

          Note: This parameter was previously wrongly defined as a string.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Name" access="readWrite">
        <description>
          The textual name of the Dynamic DNS Server.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Alias" access="readWrite" version="2.10">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="ServiceName" access="readWrite">
        <description>
          Dynamic DNS service used to contact this server.

          {{reference}}
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <enumerationRef targetParam="Device.DynamicDNS.SupportedServices"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ServerAddress" access="readWrite">
        <description>
          Host name or IP address of the Dynamic DNS server.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ServerPort" access="readWrite">
        <description>
          Port number of the Dynamic DNS server.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SupportedProtocols" access="readOnly">
        <description>
          Indicates the protocols that are supported by the CPE for sending
          requests to the Dynamic DNS server. {{list}} This list depends on the
          Dynamic DNS service defined by the {{param|ServiceName}} parameter.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="HTTP">
              <description>As defined in {{bibref|RFC2616}}</description>
            </enumeration>
            <enumeration value="HTTPS">
              <description>As defined in {{bibref|RFC2818}}</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="Protocol" access="readWrite">
        <description>
          Indicates the protocol used to send requests to the Dynamic DNS
          server.
        </description>
        <syntax>
          <string>
            <enumerationRef targetParam="SupportedProtocols"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="CheckInterval" access="readWrite">
        <description>
          Interval (in {{units}}) between two checks for IP change.

          A value of zero indicates that the CPE knows when IP changes and
          doesn’t need to check it periodically.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RetryInterval" access="readWrite">
        <description>
          Initial retry interval (in {{units}}) after a failed request. This
          parameter can be used as a fixed value or as part of a retry interval
          calculation.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MaxRetries" access="readWrite">
        <description>
          Maximum number of retries after a failed request. When the maximum
          number is reached, no further requests are sent until the context
          changes.

          A value of 0 means that there are no retries after a failed request.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.LEDs." access="readOnly" minEntries="1"
        maxEntries="1" version="2.11">
      <description>
        This object describes the LEDs on the device.
      </description>

      <parameter name="LEDNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.LEDs.LED.{i}." access="readOnly"
        numEntriesParameter="LEDNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.11">
      <description>
        Each instance of this object describes an LED on the device.

        The default illumination characteristics (e.g., Color, Brightness) of
        an in use LED is vendor specific. When a cycle completes (i.e.,
        {{param|CyclePeriodRepetitions}} = 0), the LED reverts back to its
        default illumination characteristics.

        When the value of the {{param|Status}} parameter is
        {{enum|Controlled|Status}}, then the value of
        {{param|CycleElementNumberOfEntries}} and
        {{param|CycleElementNumberOfEntries}} parameters SHOULD be 0.

        When the value of the {{param|RelativeXPosition}} and
        {{param|RelativeYPosition}} parameters are 0, this indicates that the
        position of the LED is unknown.
      </description>
      <uniqueKey functional="true">
        <parameter ref="Name"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.11">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Enable" access="readWrite" version="2.19">
        <description>
          Switches on or off the power of the LED.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Name" access="readWrite">
        <description>
          The internal name used to identify this LED.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The status of the LED.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled">
              <description>The LED is currently not in use.</description>
            </enumeration>
            <enumeration value="InUse">
              <description>
                The LED is currently being used by the CPE.
              </description>
            </enumeration>
            <enumeration value="Controlled">
              <description>
                Indicates that the LED is controlled from an electronic circuit
                which cannot be monitored.
              </description>
            </enumeration>
            <enumeration value="Error">
              <description>
                The LED status cannot be determined by the CPE.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="Reason" access="readOnly" activeNotify="canDeny">
        <description>
          The textual purpose that represents the visual display of the LED
          (e.g., Broadband Down).
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="CyclePeriodRepetitions" access="readOnly"
          activeNotify="canDeny">
        <description>
          The number of cycle periods left for this LED. As each cycle period
          is completed this parameter is reduced by 1. A value of -1 indicates
          an infinite number of cycle period repetitions.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="Location" access="readOnly">
        <description>
          The location of the LED as the user looks at the front of the device
          in its typical orientation (e.g., on-end, flat).
        </description>
        <syntax>
          <string>
            <enumeration value="Front"/>
            <enumeration value="Back"/>
            <enumeration value="Left"/>
            <enumeration value="Right"/>
            <enumeration value="Top"/>
            <enumeration value="Bottom"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="RelativeXPosition" access="readOnly">
        <description>
          The relative x position of the LED from left to right (x) and top to
          bottom (y) as the user looks at the device from the orientation
          identified in the {{param|Location}} parameter in its typical
          orientation (e.g., on-end, flat).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="RelativeYPosition" access="readOnly">
        <description>
          The relative y position of the LED from left to right (x) and top to
          bottom (y) as the user looks at the device from the orientation
          identified in the {{param|Location}} parameter in its typical
          orientation (e.g., on-end, flat).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MaxBrightness" access="readOnly" version="2.19">
        <description>
          The maximum allowed brightness level for the LED.

          This value is determined by the hardware capabilities.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="CycleElementNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.LEDs.LED.{i}.CycleElement.{i}." access="readWrite"
        numEntriesParameter="CycleElementNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded"
        version="2.11">
      <description>
        Each instance of this object describes the LED characteristics for a
        portion of the LED cycle period.

        The pattern of lighting for the LED corresponding to this table (i.e.,
        the LED cycle period) is defined by the illumination of the LED
        according to the entries in this table, taken sequentially in the order
        specified by the {{param|Order}} parameter, with the duration for the
        portion of the LED illumination corresponding to a given instance
        specified by the {{param|Duration}} parameter.

        The other parameters of the instance of this object (e.g., Color,
        Brightness) describes the illumination characteristics applied to the
        LED for this {{object}} instance.

        The length of the complete LED cycle is the sum of the Duration
        parameters for all of the entries in this table.
      </description>
      <uniqueKey functional="true">
        <parameter ref="Order"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.11">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables this {{object}} instance.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Order" access="readWrite">
        <description>
          The relative order of this {{object}} in the LED's cycle period.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Color" access="readWrite">
        <description>
          The color being displayed by the LED RGB hexadecimal notation (e.g.,
          FF0088).

          Note: If the parameter is set to an unsupported color the CPE MUST
          NOT infer a different color.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="3" maxLength="3"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="Duration" access="readWrite">
        <description>
          The duration, in {{units}}, for this element of the cycle period.
        </description>
        <syntax>
          <unsignedInt>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="FadeInterval" access="readWrite">
        <description>
          The interval corresponding to this {{object}} instance, in {{units}},
          from the starting from the target illumination characteristics of the
          previous {{object}} instance to the target illumination
          characteristics of this {{object}} instance.

          The transition to the target illumination characteristics is
          uniformly interpolated "perceptually" over the value of this
          {{param}} parameter.
        </description>
        <syntax>
          <unsignedInt>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Brightness" access="readWrite" version="2.19">
        <description>
          The desired brightness level for this element of the cycle period,
          expressed as a {{units}}, relative to the maximum allowed brightness
          value specified in {{param|#.MaxBrightness}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="100"/>
            <units value="percentage"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.LEDs.LED.{i}.CurrentCycleElement." access="readOnly"
        minEntries="1" maxEntries="1" version="2.11">
      <description>
        This object describes the status of the current cycle element for this
        LED.
      </description>

      <parameter name="CycleElementReference" access="readOnly"
          activeNotify="canDeny">
        <description>
          This object describes the current properties of the
          {{object|#.CycleElement.{i}}} object instance that is currently
          active.

          {{reference}} If the LED instances does not have a current cycle
          element active, this parameter MUST be set to {{empty}}.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="#.CycleElement."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Color" access="readOnly" activeNotify="canDeny">
        <description>
          The color, formatted as RGB hexadecimal notation (e.g., FF0088), that
          is currently being displayed by the LED.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="3" maxLength="3"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="Duration" access="readOnly" activeNotify="canDeny">
        <description>
          The remaining duration, in {{units}}, for this element of the cycle
          period.
        </description>
        <syntax>
          <unsignedInt>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.BASAPM." access="readOnly" minEntries="1"
        maxEntries="1" version="2.12">
      <description>
        This object represents the objects necessary to manage and control the
        functionality for tests that utilize the Broadband Access Service
        Attributes and Performance Metrics measurement test framework as
        defined in by {{bibref|TR-304}}.
      </description>

      <parameter name="MeasurementEndpointNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.BASAPM.MeasurementEndpoint.{i}." access="readWrite"
        minEntries="0" maxEntries="unbounded" enableParameter="Enable"
        numEntriesParameter="MeasurementEndpointNumberOfEntries" version="2.12">
      <description>
        This object represents the measurement endpoint that provides
        additional contextual information regarding the measurement agent.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="MeasurementAgent"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.12">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables this {{object}} instance.

          This parameter is based on ''ifAdminStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MeasurementAgent" access="readWrite">
        <description>
          {{reference|a {{object|##.LMAP.MeasurementAgent}} object that is
          associated with this measurement endpoint.}}
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetType="row"
                targetParent="##.LMAP.MeasurementAgent."/>
          </string>
        </syntax>
      </parameter>

      <parameter name="DeviceOwnership" access="readWrite">
        <description>
          This parameter describes the ownership of the device that hosts the
          measurement endpoint.

          {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="ISP">
              <description>ISP Owned Device</description>
            </enumeration>
            <enumeration value="Customer">
              <description>Customer Owned Device</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="OperationalDomain" access="readWrite">
        <description>
          This parameter describes the operational domain for this measurement
          endpoint
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="InternetDomain" access="readWrite">
        <description>
          The top level Internet domain used to identify this measurement
          endpoint.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="UseMeasurementEndpointInReports" access="readWrite">
        <description>
          If the value of this parameter is {{false}} then the Measurement
          Endpoint MUST not be included in measurement reports.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.BASAPM.MeasurementEndpoint.{i}.ISPDevice."
        access="readOnly" minEntries="1" maxEntries="1" version="2.12">
      <description>
        This object represents the information necessary to utilize an ISP
        owned device within the measurement endpoint.
      </description>

      <parameter name="ReferencePoint" access="readWrite">
        <description>
          This parameter describes the measurement reference point of the
          measurement endpoint.

          {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="STP">
              <description>Internet Source Test Point</description>
            </enumeration>
            <enumeration value="IDTP">
              <description>Internet Drain Test Point</description>
            </enumeration>
            <enumeration value="RNTP">
              <description>Regional Network Test Point</description>
            </enumeration>
            <enumeration value="IRTP">
              <description>Internal Regional Test Point</description>
            </enumeration>
            <enumeration value="MTP">
              <description>Metro Test Point</description>
            </enumeration>
            <enumeration value="IATP">
              <description>Internal Access Test Point</description>
            </enumeration>
            <enumeration value="UNITP">
              <description>User Network Interface Test Point</description>
            </enumeration>
            <enumeration value="CEDTP">
              <description>Customer End Device Test Point</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="GeographicalLocation" access="readWrite">
        <description>
          {{reference|a {{object|###.DeviceInfo.Location}} object that
          describes the geographic location of the measurement endpoint}}
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetType="row"
                targetParent="###.DeviceInfo.Location."/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.BASAPM.MeasurementEndpoint.{i}.CustomerDevice."
        access="readOnly" minEntries="1" maxEntries="1" version="2.12">
      <description>
        This object represents the information necessary to utilize customer
        owned device within the measurement endpoint.
      </description>

      <parameter name="EquipmentIdentifier" access="readWrite">
        <description>
          This parameter describes the customer equipment identifier of the
          measurement endpoint.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="CustomerIdentifier" access="readWrite">
        <description>
          The unique customer identifier within the operational domain for this
          measurement endpoint.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.LMAP." access="readOnly" minEntries="1"
        maxEntries="1" version="2.12">
      <description>
        This object represents the objects necessary to manage and control the
        functionality for Large-Scale Measurement of Broadband
        Performance{{bibref|RFC7594}} as defined in by {{bibref|LMAPIFM}}.
      </description>

      <parameter name="MeasurementAgentNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ReportNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="EventNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.LMAP.MeasurementAgent.{i}." access="readWrite"
        minEntries="0" maxEntries="unbounded" enableParameter="Enable"
        numEntriesParameter="MeasurementAgentNumberOfEntries" version="2.12">
      <description>
        This object represents the measurement agent that performs measurement
        tasks and reporting functions defined in {{bibref|RFC7594}}.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="Identifier"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.12">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables this {{object}} instance.

          This parameter is based on ''ifAdminStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Version" access="readOnly">
        <description>
          Version of the measurement agent.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="LastStarted" access="readOnly">
        <description>
          Date and time, based on {{bibref|RFC3339}}, in UTC that the
          measurement agent was successfully started.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="CapabilityTags" access="readOnly">
        <description>
          Capabilities of the measurement agent that cannot be expressed
          elsewhere in the data model.
        </description>
        <syntax>
          <list/>
          <string/>
        </syntax>
      </parameter>

      <parameter name="Identifier" access="readWrite">
        <description>
          Identifier of the {{object}} instance.
        </description>
        <syntax>
          <dataType ref="UUID"/>
        </syntax>
      </parameter>

      <parameter name="GroupIdentifier" access="readWrite">
        <description>
          Identifier of the measurement group of interest to which the
          measurement agent belongs.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="MeasurementPoint" access="readWrite">
        <description>
          Identifier of the measurement point indicating where the measurement
          agent is located on a path as defined in [bibref|RFC7398}}.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="UseAgentIdentifierInReports" access="readWrite">
        <description>
          If the value of the {{param|Identifier}} parameter is not {{empty}}
          and the value of this parameter is {{false}} then the value of the
          {{param|Identifier}} parameter MUST not be included in measurement
          reports.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="true"/>
        </syntax>
      </parameter>

      <parameter name="UseGroupIdentifierInReports" access="readWrite">
        <description>
          If the value of the {{param|GroupIdentifier}} parameter is not
          {{empty}} and the value of this parameter is {{false}} then the value
          of the {{param|GroupIdentifier}} parameter MUST not be included in
          measurement reports.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="UseMeasurementPointInReports" access="readWrite">
        <description>
          If the value of the {{param|MeasurementPoint}} parameter is not
          {{empty}} and the value of this parameter is {{false}} then the value
          of the {{param|MeasurementPoint}} parameter MUST not be included in
          measurement reports.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="PublicCredential" access="readWrite">
        <description>
          {{reference|a {{object|##.Security.Certificate}} object that is used
          to identify this measurement agent}}
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetType="row"
                targetParent="##.Security.Certificate."/>
          </string>
        </syntax>
      </parameter>

      <parameter name="PrivateCredential" access="readWrite">
        <description>
          {{reference|a {{object|##.Security.Certificate}} object that is used
          to contain the private keys for this measurement agent}}
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetType="row"
                targetParent="##.Security.Certificate."/>
          </string>
        </syntax>
      </parameter>

      <parameter name="EventLog" access="readOnly">
        <description>
          {{reference|a {{object|##.DeviceInfo.VendorLogFile}} object that is
          used to record events for this measurement agent}}
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetType="row"
                targetParent="##.DeviceInfo.VendorLogFile."/>
          </string>
        </syntax>
      </parameter>

      <parameter name="TaskCapabilityNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ScheduleNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="TaskNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="CommunicationChannelNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="InstructionNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.LMAP.MeasurementAgent.{i}.TaskCapability.{i}."
        access="readOnly" minEntries="0" maxEntries="unbounded"
        numEntriesParameter="TaskCapabilityNumberOfEntries" version="2.12">
      <description>
        This object represents a capabilities, in the context of a task, that
        are supported by the measurement agent. Types of capabilities include:
        Report tasks, Configuration Tasks and Instruction Tasks.
      </description>
      <uniqueKey functional="true">
        <parameter ref="Name"/>
      </uniqueKey>

      <parameter name="Name" access="readOnly">
        <description>
          Name of the supported task.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Version" access="readOnly">
        <description>
          Version of the task.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="TaskCapabilityRegistryNumberOfEntries"
          access="readOnly" dmr:customNumEntriesParameter="true">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.LMAP.MeasurementAgent.{i}.TaskCapability.{i}.Registry.{i}."
        access="readOnly" minEntries="0" maxEntries="unbounded"
        numEntriesParameter="TaskCapabilityRegistryNumberOfEntries"
        version="2.12">
      <description>
        This object represents a registry function and an associated list of
        roles supported by this measurement agent
      </description>
      <uniqueKey functional="true">
        <parameter ref="RegistryEntry"/>
      </uniqueKey>

      <parameter name="RegistryEntry" access="readOnly">
        <description>
          A URI ({{bibref|RFC3986}}) that is the value of the task registry
          entry as defined in {{bibref|LMAPREG}} or a value for a task that is
          understood by the measurement agent, measurement controller and
          measurement collector.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="Roles" access="readOnly">
        <description>
          {{list| representing the roles of the function}}
        </description>
        <syntax>
          <list/>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.LMAP.MeasurementAgent.{i}.Controller."
        access="readOnly" minEntries="1" maxEntries="1" version="2.12">
      <description>
        This objects represents the measurement controller that is assigned to
        a measurement agent.
      </description>

      <parameter name="ControllerTimeout" access="readWrite">
        <description>
          The timer, in {{units}}, that is started after each successful
          contact with a measurement controller.

          When the timer reaches the timeout an event is raised indicating that
          connectivity to the controller has been lost.
        </description>
        <syntax>
          <int>
            <units value="seconds"/>
            <range minInclusive="0"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="ControlSchedules" access="readWrite">
        <description>
          {{list}} {{reference|a {{object|#.Schedule}} object}}

          This parameter lists the available control schedules for invoking
          control tasks by the measurement agent.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetType="row"
                targetParent="#.Schedule."/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ControlTasks" access="readWrite">
        <description>
          {{list}} {{reference|a {{object|#.Task}} object}}

          This parameter lists the available control tasks that can be invoked
          by the measurement agent.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetType="row" targetParent="#.Task."/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ControlChannels" access="readWrite">
        <description>
          {{list}} {{reference|a {{object|#.CommunicationChannel}} object}}

          The measurement agent to measurement controller channel is used for
          conveying results of communication sessions with the configuration,
          instruction status and logging information elements defined in
          defined in {{bibref|LMAPIFM}}.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetType="row"
                targetParent="#.CommunicationChannel."/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.LMAP.MeasurementAgent.{i}.Schedule.{i}."
        access="readWrite" minEntries="0" maxEntries="unbounded"
        enableParameter="Enable" numEntriesParameter="ScheduleNumberOfEntries"
        version="2.12">
      <description>
        This object represents a schedule that is associated with a set of
        scheduled actions to be performed by a measurement agent.

        Note: Actions of an occurrence of this {{object}} are gracefully
        terminated by the defining either the {{param|End}} or
        {{param|Duration}} parameters. Only one of these parameters may be
        defined at a time.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="Name"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables this {{object}} instance.

          This parameter is based on ''ifAdminStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Alias" access="readWrite" version="2.12">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name" access="readWrite">
        <description>
          Name of the schedule.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="State" access="readOnly">
        <description>
          The current operational state of the Schedule. Only one instance of
          the schedule is active. An active schedule is defined where the
          {{param}} parameter has a value of {{enum|Running|State}}.

          {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="Enabled"/>
            <enumeration value="Suppressed"/>
            <enumeration value="Disabled"/>
            <enumeration value="Running"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Start" access="readWrite">
        <description>
          {{reference|a {{object|##.Event}} object that is used define the
          event to start an occurrence of this {{object}}}}
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetType="row"
                targetParent="##.Event."/>
          </string>
        </syntax>
      </parameter>

      <parameter name="End" access="readWrite">
        <description>
          {{reference|a {{object|##.Event}} object that is used define the
          event to gracefully terminate all actions associated with an
          occurrence of this {{object}}}}.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetType="row"
                targetParent="##.Event."/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Duration" access="readWrite">
        <description>
          When the {{param}} value is not 0, this parameter is used define the
          duration, in {{units}}, where after this duration all actions
          associated with an occurrence of this {{object}} are gracefully
          terminated.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="Tags" access="readWrite">
        <description>
          {{list|each entry represents tags that are to be reported together
          with the measurement results.}}
        </description>
        <syntax>
          <list/>
          <string/>
        </syntax>
      </parameter>

      <parameter name="SuppressionTags" access="readWrite">
        <description>
          {{list|representing the suppression tags to be matched}}
        </description>
        <syntax>
          <list/>
          <string/>
        </syntax>
      </parameter>

      <parameter name="ExecutionMode" access="readWrite">
        <description>
          This parameter describes the execution method to apply to this
          schedule for the associated Actions.

          {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="Sequential">
              <description>
                Actions are executed in sequence as defined by the value of the
                {{param|Action.{i}.Order}} parameter.

                The first Scheduled Action of the DestinationOutput is provided
                the input.
              </description>
            </enumeration>
            <enumeration value="Parallel">
              <description>
                Actions are executed in parallel.

                The all Scheduled Actions of the DestinationOutput are provided
                the input.
              </description>
            </enumeration>
            <enumeration value="Pipelined">
              <description>
                Actions are executed in sequence where the output of one Action
                is used as the input of subsequent Action.

                The first Scheduled Action of the DestinationOutput is provided
                the input.
              </description>
            </enumeration>
          </string>
          <default type="object" value="Pipelined"/>
        </syntax>
      </parameter>

      <parameter name="LastInvocation" access="readOnly">
        <description>
          Date and time, based on {{bibref|RFC3339}}, in UTC that the
          {{object}} was invoked by the measurement agent.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="Storage" access="readOnly" activeNotify="canDeny">
        <description>
          The amount of secondary storage, in {{units}}, allocated to an
          instance of this {{object}}.

          The value of this parameter reflects the amount of allocated physical
          storage and not the storage used by logical data records.

          For example the secondary storage can be the storage allocated in a
          file system holding temporary data.
        </description>
        <syntax>
          <unsignedLong>
            <units value="bytes"/>
          </unsignedLong>
        </syntax>
      </parameter>

      <parameter name="ActionNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Stats."
        access="readOnly" minEntries="1" maxEntries="1" version="2.12">
      <description>
        This object represents the statistics associated with this object.
      </description>

      <parameter name="Invocations" access="readOnly" activeNotify="canDeny">
        <description>
          Number of invocations of this schedule. This counter does not include
          suppressed invocations or invocations that were prevented due to an
          overlap with a previous invocation of this schedule.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="Suppressions" access="readOnly" activeNotify="canDeny">
        <description>
          Number of suppressed executions of this schedule.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="Overlaps" access="readOnly" activeNotify="canDeny">
        <description>
          Number of executions prevented due to overlaps with a previous
          invocation of this schedule.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="Failures" access="readOnly" activeNotify="canDeny">
        <description>
          Number of failed executions of this schedule. A failed execution is
          an execution where at least one action failed.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}."
        access="readWrite" minEntries="0" maxEntries="unbounded"
        enableParameter="Enable" numEntriesParameter="ActionNumberOfEntries"
        version="2.12">
      <description>
        This object represents an action that is associated with the this
        {{object|##.Schedule}} object.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables this {{object|##.Schedule.{i}.Action}} object.

          This parameter is based on ''ifAdminStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Alias" access="readWrite" version="2.12">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="State" access="readOnly">
        <description>
          The current operational state of the {{object}}. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="Enabled"/>
            <enumeration value="Suppressed"/>
            <enumeration value="Disabled"/>
            <enumeration value="Running"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Order" access="readWrite">
        <description>
          The order of the scheduled action.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="Task" access="readWrite">
        <description>
          {{reference|a {{object|##.Task}} object used in this scheduled
          action}}
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetType="row" targetParent="##.Task."/>
          </string>
        </syntax>
      </parameter>

      <parameter name="OutputDestination" access="readWrite">
        <description>
          {{list}} {{reference|a {{object|##.Schedule}} object used to receive
          the output(s) of this scheduled action}}
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetType="row"
                targetParent="##.Schedule."/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SuppressionTags" access="readWrite">
        <description>
          {{list|representing the suppression tags to be matched}}
        </description>
        <syntax>
          <list/>
          <string/>
        </syntax>
      </parameter>

      <parameter name="Tags" access="readWrite">
        <description>
          {{list|each entry represents tags that are to be reported together
          with the measurement results.}}
        </description>
        <syntax>
          <list/>
          <string/>
        </syntax>
      </parameter>

      <parameter name="Storage" access="readOnly" activeNotify="canDeny">
        <description>
          The amount of secondary storage, in {{units}}, allocated to an
          instance of this {{object}}.

          The value of this parameter reflects the amount of allocated physical
          storage and not the storage used by logical data records.

          For example the secondary storage can be the storage allocated in a
          file system holding temporary data.
        </description>
        <syntax>
          <unsignedLong>
            <units value="bytes"/>
          </unsignedLong>
        </syntax>
      </parameter>

      <parameter name="LastInvocation" access="readOnly">
        <description>
          Date and time, based on {{bibref|RFC3339}}, in UTC that the
          {{object}} was invoked by the measurement agent.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="LastSuccessfulCompletion" access="readOnly">
        <description>
          Date and time, based on {{bibref|RFC3339}}, in UTC of a successful
          completion of the {{object}}.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="LastSuccessfulStatusCode" access="readOnly">
        <description>
          The status code returned by successful execution of the {{object}}. A
          value of 0 indicates successful completion.
        </description>
        <syntax>
          <int/>
        </syntax>
      </parameter>

      <parameter name="LastSuccessfulMessage" access="readOnly">
        <description>
          The message associated with the successful completion of the
          {{object}}.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="LastFailedCompletion" access="readOnly">
        <description>
          Date and time, based on {{bibref|RFC3339}}, in UTC of a failure to
          complete the {{object}}.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="LastFailedStatusCode" access="readOnly">
        <description>
          The status code returned by failed execution of the {{object}}. A
          value of 0 indicates successful completion.
        </description>
        <syntax>
          <int/>
        </syntax>
      </parameter>

      <parameter name="LastFailedMessage" access="readOnly">
        <description>
          The message associated with the failure to complete the task.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="OptionNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Stats."
        access="readOnly" minEntries="1" maxEntries="1" version="2.12">
      <description>
        This object represents the statistics associated with this object.
      </description>

      <parameter name="Invocations" access="readOnly" activeNotify="canDeny">
        <description>
          Number of invocations of this action. This counter does not include
          suppressed invocations or invocations that were prevented due to an
          overlap with a previous invocation of this schedule.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="Suppressions" access="readOnly" activeNotify="canDeny">
        <description>
          Number of suppressed executions of this action.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="Overlaps" access="readOnly" activeNotify="canDeny">
        <description>
          Number of executions prevented due to overlaps with a previous
          invocation of this action.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="Failures" access="readOnly" activeNotify="canDeny">
        <description>
          Number of failed executions of this action. A failed execution is an
          execution where at least one action failed.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Option.{i}."
        access="readWrite" minEntries="0" maxEntries="unbounded"
        enableParameter="Enable" numEntriesParameter="OptionNumberOfEntries"
        version="2.12">
      <description>
        This object represents an option associated with the Scheduled Action.
        When an option with the same Name exists between the Seheduled Action's
        Option and The Task's option, the option of the Scheduled Action takes
        precedence over the option associated with the Task.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="Name"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables this {{object}} instance.

          This parameter is based on ''ifAdminStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Alias" access="readWrite" version="2.12">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Order" access="readWrite">
        <description>
          The order of the Option.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="Name" access="readWrite">
        <description>
          The name of the option.

          When the value of this parameter is equal to "channel", the option
          value specifies the Communication Channel used for this scheduled
          task.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Value" access="readWrite">
        <description>
          The value associated with the Option.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.LMAP.MeasurementAgent.{i}.Task.{i}."
        access="readWrite" minEntries="0" maxEntries="unbounded"
        enableParameter="Enable" numEntriesParameter="TaskNumberOfEntries"
        version="2.12">
      <description>
        The {{object}} object defines the configuration for a task that can be
        performed by {{object|##.MeasurementAgent}} objects.

        Tasks are performed by {{object|##.MeasurementAgent}} objects when a
        {{object|#.Schedule}} object invokes the Task.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="Name"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables this {{object}} instance.

          This parameter is based on ''ifAdminStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Alias" access="readWrite" version="2.12">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name" access="readWrite">
        <description>
          Name of the task.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Tags" access="readWrite">
        <description>
          {{list|each entry represents tags that are to be reported together
          with the measurement results.}}
        </description>
        <syntax>
          <list/>
          <string/>
        </syntax>
      </parameter>

      <parameter name="OptionNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="RegistryNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.LMAP.MeasurementAgent.{i}.Task.{i}.Registry.{i}."
        access="readWrite" enableParameter="Enable" minEntries="0"
        maxEntries="unbounded" numEntriesParameter="RegistryNumberOfEntries"
        version="2.12">
      <description>
        This object represents a registry function and an associated list of
        roles for this task
      </description>
      <uniqueKey functional="true">
        <parameter ref="RegistryEntry"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables this {{object}} instance.

          This parameter is based on ''ifAdminStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Alias" access="readWrite" version="2.12">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="RegistryEntry" access="readWrite">
        <description>
          A URI ({{bibref|RFC3986}}) that is the value of the task registry
          entry as defined in {{bibref|LMAPREG}} or a value for a task that is
          understood by the measurement agent, measurement controller and
          measurement collector.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="Roles" access="readWrite">
        <description>
          {{list| representing the roles of the function}}
        </description>
        <syntax>
          <list/>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.LMAP.MeasurementAgent.{i}.Task.{i}.Option.{i}."
        access="readWrite" minEntries="0" maxEntries="unbounded"
        enableParameter="Enable" numEntriesParameter="OptionNumberOfEntries"
        version="2.12">
      <description>
        This object represents an option associated with the task.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="Name"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables this {{object}} instance.

          This parameter is based on ''ifAdminStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Alias" access="readWrite" version="2.12">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Order" access="readWrite">
        <description>
          The order of the Option.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="Name" access="readWrite">
        <description>
          The name of the option.

          When the value of this parameter is equal to "channel", the option
          value specifies the Communication Channel used for this task.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Value" access="readWrite">
        <description>
          The value associated with the Option.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.LMAP.MeasurementAgent.{i}.CommunicationChannel.{i}."
        access="readWrite" minEntries="0" maxEntries="unbounded"
        enableParameter="Enable"
        numEntriesParameter="CommunicationChannelNumberOfEntries"
        version="2.12">
      <description>
        This object represents the properties communication channel used to
        establish communication between a measurement agent and other elements
        of the LMAP framework (e.g., measurement controller, measurement
        collector). The value of the {{param|Name}} parameter used for
        conveying information is defined as an option in the Task's or
        scheduled Task's option parameter.

        When this object uses the BulkData capability, a
        {{object|###.BulkData.Profile.{i}}} object instance referred to by this
        object.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="Name"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables this {{object}} instance.

          This parameter is based on ''ifAdminStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Alias" access="readWrite" version="2.12">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name" access="readWrite">
        <description>
          Name of the channel.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="UseBulkDataProfile" access="readWrite">
        <description>
          Enables or disables the ability to use a bulk data profile for this
          communication channel
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BulkDataProfile" access="readWrite">
        <description>
          {{reference|a {{object|###.BulkData.Profile}} object that is used to
          represent communication channel}}
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetType="row"
                targetParent="###.BulkData.Profile."/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Target" access="readWrite">
        <description>
          The {{datatype}} of the LMAP component that is the target of this
          communication channel.
        </description>
        <syntax>
          <dataType ref="URL"/>
        </syntax>
      </parameter>

      <parameter name="TargetPublicCredential" access="readWrite">
        <description>
          {{reference|a {{object|###.Security.Certificate}} object that is used
          to identify the target of this channel}}
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetType="row"
                targetParent="###.Security.Certificate."/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite">
        <description>
          {{reference|an interface object used to restrict the data transmitted
          or received using this channel to a specific interface}} If the value
          of this parameter is {{empty}} the data that is transmitted or
          received using this channel is able to use any available interface.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetType="row"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.LMAP.MeasurementAgent.{i}.Instruction.{i}."
        access="readWrite" minEntries="0" maxEntries="unbounded"
        enableParameter="Enable"
        numEntriesParameter="InstructionNumberOfEntries" version="2.12">
      <description>
        The {{object}} object defines the instruction to the measurement agent
        by the measurement controller. At most one {{object}} object for the
        {{object|##.MeasurementAgent}} instance is enabled at a time. .
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables this {{object}} instance.

          This parameter is based on ''ifAdminStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Alias" access="readWrite" version="2.12">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="LastChange" access="readOnly">
        <description>
          Date and time, based on {{bibref|RFC3339}}, in UTC that the
          {{object}} object or its sub-object's configuration was changed by a
          measurement agent's controller.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="InstructionSchedules" access="readWrite">
        <description>
          {{list}} {{reference|a {{object|#.Schedule}} object}}

          This parameter lists the available instruction schedules for invoking
          control tasks by the measurement agent.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetType="row"
                targetParent="#.Schedule."/>
          </string>
        </syntax>
      </parameter>

      <parameter name="InstructionTasks" access="readWrite">
        <description>
          {{list}} {{reference|a {{object|#.Task}} object}}

          This parameter lists the available instruction tasks that can be
          invoked by the measurement agent.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetType="row" targetParent="#.Task."/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ReportChannels" access="readWrite">
        <description>
          {{list}} {{reference|a {{object|#.CommunicationChannel}} object}}

          This parameter defines the corresponding report channels to be used
          when reporting results of tasks to a measurement collector.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetType="row"
                targetParent="#.CommunicationChannel."/>
          </string>
        </syntax>
      </parameter>

      <parameter name="MeasurementSuppressionNumberOfEntries"
          access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.MeasurementSuppression.{i}."
        access="readWrite" minEntries="0" maxEntries="unbounded"
        enableParameter="Enable"
        numEntriesParameter="MeasurementSuppressionNumberOfEntries"
        version="2.12">
      <description>
        This object defines the schedules and actions that are suppressed based
        on criteria defined in the {{param|SuppressionMatch}} parameter.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="Name"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables this {{object}} instance.

          This parameter is based on ''ifAdminStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Alias" access="readWrite" version="2.12">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name" access="readWrite">
        <description>
          Name of the suppression object.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="State" access="readOnly">
        <description>
          The current operational state of the {{object}}. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="Enabled"/>
            <enumeration value="Active"/>
            <enumeration value="Disabled"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="StopRunning" access="readWrite">
        <description>
          When {{true}}, the measurement agent is instructed to stop running
          schedules or actions that have been matched by this object.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Start" access="readWrite">
        <description>
          {{reference|a {{object|###.Event}} object that is used define the
          event that to start an occurrence of this {{object}}}} When {{empty}}
          the default behavior is to perform the suspension event immediately.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetType="row"
                targetParent="###.Event."/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="End" access="readWrite">
        <description>
          {{reference|a {{object|###.Event}} object that is used define the
          event to gracefully suspend all actions associated with an occurrence
          of this {{object}}}} When {{empty}} the default behavior is for the
          suspension period to be indefinite.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetType="row"
                targetParent="###.Event."/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SuppressionMatch" access="readWrite">
        <description>
          {{list|representing the match patterns to be used for applying
          suppression to {{object|##.Schedule.{i}}} (and their actions) and all
          {{object|##.Schedule.{i}.Action.{i}}} object instances that have a
          matched using their SuppressionTags parameters}} The match pattern
          syntax is defined in {{bibref|LMAPIFM}}.
        </description>
        <syntax>
          <list/>
          <string/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.LMAP.Report.{i}." access="readOnly" minEntries="0"
        maxEntries="unbounded" numEntriesParameter="ReportNumberOfEntries"
        dmr:noUniqueKeys="true" version="2.12">
      <description>
        This {{object}} object instance represents a report that is generated
        by a reporting task where the reporting task is defined as a
        {{object|#.MeasurementAgent.{i}.Task.{i}}} and executed as a scheduled
        action ({{object|#.MeasurementAgent.{i}.Schedule.{i}.Action.{i}}}).

        The {{object}} replicates the {{object|#.MeasurementAgent.{i}}} object
        instance's data at the time of the action execution.

        When a {{object|##.BulkData.Profile.{i}}} object instance is used to
        communicate a {{object}} instance, the CPE adds a
        {{object|##.BulkData.Profile.{i}.Parameter.{i}}} object instance
        referring to this {{object}} object instance.
      </description>

      <parameter name="ReportDate" access="readOnly">
        <description>
          The report date and time, based on {{bibref|RFC3339}}, that the
          report was sent to the collector.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="AgentIdentifier" access="readOnly">
        <description>
          Identifier of the measurement agent at the time the measurement was
          run.
        </description>
        <syntax>
          <dataType ref="UUID"/>
        </syntax>
      </parameter>

      <parameter name="GroupIdentifier" access="readOnly">
        <description>
          Identifier of the measurement group of interest to which the MA
          belongs.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="MeasurementPoint" access="readOnly">
        <description>
          Identifier of the measurement point indicating where the measurement
          agent is located on a path as defined in {{bibref|RFC7398}}.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ResultNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.LMAP.Report.{i}.Result.{i}." access="readOnly"
        minEntries="0" maxEntries="unbounded"
        numEntriesParameter="ResultNumberOfEntries" version="2.12">
      <description>
        The {{object}} object provides the meta-data of the result report of a
        single executed action that produced the result.
      </description>
      <uniqueKey functional="true">
        <parameter ref="ScheduleName"/>
        <parameter ref="ActionName"/>
        <parameter ref="StartTime"/>
      </uniqueKey>

      <parameter name="TaskName" access="readOnly">
        <description>
          Name of the task that produced the result.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ScheduleName" access="readOnly">
        <description>
          Name of the schedule that produced the result.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ActionName" access="readOnly">
        <description>
          Name of the action that produced the result.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="EventTime" access="readOnly">
        <description>
          The date and time, based on {{bibref|RFC3339}}, that the event that
          triggered the schedule of the action that produced the reported
          result values in UTC.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="StartTime" access="readOnly">
        <description>
          The date and time, based on {{bibref|RFC3339}}, that the action
          started in UTC.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="EndTime" access="readOnly">
        <description>
          The date and time, based on {{bibref|RFC3339}}, that the action was
          completed in UTC.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="CycleNumber" access="readOnly">
        <description>
          The cycle number derived from the {{param|EventTime}}.

          The cycle number is the time, in UTC, closest to the
          {{param|EventTime}} that is a multiple of the cycle interval of the
          event that triggered the execution of the schedule.

          The value is valid if the event that triggered the execution of the
          schedule has a defined cycle interval. {{empty}} represents an
          invalid CycleNumber.

          {{pattern}}
        </description>
        <syntax>
          <string>
            <pattern value="YYYYMMDD.HHMMSS"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The status code returned by the execution of the action.
        </description>
        <syntax>
          <int/>
        </syntax>
      </parameter>

      <parameter name="Tags" access="readOnly">
        <description>
          {{list|each entry represents tags defined for the schedule, task and
          action objects that produced this result}}
        </description>
        <syntax>
          <list/>
          <string/>
        </syntax>
      </parameter>

      <parameter name="OptionNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ResultConflictNumberOfEntries" access="readOnly"
          dmr:customNumEntriesParameter="true">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ResultReportTableNumberOfEntries" access="readOnly"
          dmr:customNumEntriesParameter="true">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.LMAP.Report.{i}.Result.{i}.Option.{i}."
        access="readOnly" minEntries="0" maxEntries="unbounded"
        numEntriesParameter="OptionNumberOfEntries" version="2.12">
      <description>
        This object represents an option associated with the task or action
        object that produced the result.
      </description>
      <uniqueKey functional="true">
        <parameter ref="Name"/>
      </uniqueKey>

      <parameter name="Order" access="readOnly">
        <description>
          The order of the Option.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="Name" access="readOnly">
        <description>
          The name of the Option.

          When the value of this parameter is equal to "channel", the option
          value specifies the Communication Channel used for this task.
        </description>
        <syntax>
          <int/>
        </syntax>
      </parameter>

      <parameter name="Value" access="readOnly">
        <description>
          The value associated with the Option.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.LMAP.Report.{i}.Result.{i}.Conflict.{i}."
        access="readOnly" minEntries="0" maxEntries="unbounded"
        numEntriesParameter="ResultConflictNumberOfEntries" version="2.12">
      <description>
        This object represents actions that might have impacted the results
        being reported.
      </description>
      <uniqueKey functional="true">
        <parameter ref="ScheduleName"/>
        <parameter ref="ActionName"/>
        <parameter ref="TaskName"/>
      </uniqueKey>

      <parameter name="TaskName" access="readOnly">
        <description>
          Name of the task.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ScheduleName" access="readOnly">
        <description>
          Name of the schedule.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ActionName" access="readOnly">
        <description>
          Name of the action.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.LMAP.Report.{i}.Result.{i}.ReportTable.{i}."
        access="readOnly" minEntries="0" maxEntries="unbounded"
        numEntriesParameter="ResultReportTableNumberOfEntries"
        dmr:noUniqueKeys="true" version="2.12">
      <description>
        This {{object}} object instances represents a row of results.
      </description>

      <parameter name="ColumnLabels" access="readOnly">
        <description>
          {{list}} This parameter contains the column labels used for the
          result.

          The column labels are ordered with the corresponding entries in the
          {{object|ResultRow}} table.
        </description>
        <syntax>
          <list/>
          <string/>
        </syntax>
      </parameter>

      <parameter name="ResultReportRowNumberOfEntries" access="readOnly"
          dmr:customNumEntriesParameter="true">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="RegistryNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.LMAP.Report.{i}.Result.{i}.ReportTable.{i}.ResultRow.{i}."
        access="readOnly" minEntries="0" maxEntries="unbounded"
        numEntriesParameter="ResultReportRowNumberOfEntries"
        dmr:noUniqueKeys="true" version="2.12">
      <description>
        This {{object}} object instances represents a row of results for the
        report.
      </description>

      <parameter name="Values" access="readOnly">
        <description>
          {{list}} This parameter contains an ordered set of values that align
          to the columns defined in the {{param|#.ColumnLabels}} parameter.
        </description>
        <syntax>
          <list/>
          <string/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.LMAP.Report.{i}.Result.{i}.ReportTable.{i}.Registry.{i}."
        access="readOnly" minEntries="0" maxEntries="unbounded"
        numEntriesParameter="RegistryNumberOfEntries" version="2.12">
      <description>
        This object represents a registry function and an associated list of
        roles for this result report.
      </description>
      <uniqueKey functional="true">
        <parameter ref="RegistryEntry"/>
      </uniqueKey>

      <parameter name="RegistryEntry" access="readOnly">
        <description>
          A URI ({{bibref|RFC3986}}) that is the value of the registry entry as
          defined in {{bibref|LMAPREG}} or a value for a task that is
          understood by the measurement agent, measurement controller and
          measurement collector.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="Roles" access="readOnly">
        <description>
          {{list| representing the roles of the function}}
        </description>
        <syntax>
          <list/>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.LMAP.Event.{i}." access="readWrite" minEntries="0"
        maxEntries="unbounded" enableParameter="Enable"
        numEntriesParameter="EventNumberOfEntries" version="2.12">
      <description>
        This object defines the information associated with an event used
        within the measurement agent. Event instances may be referenced by
        various objects within the LMAP model.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="Name"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables this {{object}} instance.

          This parameter is based on ''ifAdminStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Alias" access="readWrite" version="2.12">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name" access="readWrite">
        <description>
          Name of the Event.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Type" access="readWrite">
        <description>
          This parameter describes the type of {{object}} for this object
          instance. The timing of the event occurrence is adjusted based on the
          value of the {{param|RandomnessSpread}} parameter.

          {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="PeriodicTiming">
              <description>
                Periodic Timing Event. When selected one or more event
                occurrences are emitted based on the parameters defined in the
                {{object|PeriodicTimer}} object.
              </description>
            </enumeration>
            <enumeration value="CalendarTiming">
              <description>
                Calendar Timing Event. When selected one or more event
                occurrences are emitted based on the parameters defined in the
                {{object|CalendarTimer}} object.
              </description>
            </enumeration>
            <enumeration value="OneOffTiming">
              <description>
                One-off Timing Event. When selected a single event occurrence
                is emitted based on the parameters defined in the
                {{object|OneOff}} object.
              </description>
            </enumeration>
            <enumeration value="Immediate">
              <description>
                Immediate Timing Event. When selected a single event occurrence
                is emitted as soon as possible.
              </description>
            </enumeration>
            <enumeration value="Startup">
              <description>
                Startup Timing Event. When selected a single event occurrence
                is emitted when the corresponding measurement agent starts up.
              </description>
            </enumeration>
            <enumeration value="ControllerLost">
              <description>
                Controller Lost Event. When selected a single event occurrence
                is emitted when the connectivity to the controller is lost.
              </description>
            </enumeration>
            <enumeration value="ControllerConnected">
              <description>
                Controller Connected Event. When selected a single event
                occurrence is emitted when the connectivity to the controller
                is established.
              </description>
            </enumeration>
          </string>
          <default type="object" value="Immediate"/>
        </syntax>
      </parameter>

      <parameter name="RandomnessSpread" access="readWrite">
        <description>
          The spread, in {{units}}, of the Uniform Discrete random distribution
          algorithm. A value of 0 means that the random algorithm is not
          applied.
        </description>
        <syntax>
          <int>
            <units value="seconds"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="CycleInterval" access="readWrite">
        <description>
          The duration of the time interval, in {{units}}, that used to
          calculate cycle numbers.
        </description>
        <syntax>
          <int>
            <units value="seconds"/>
          </int>
        </syntax>
      </parameter>
    </object>

    <object name="Device.LMAP.Event.{i}.PeriodicTimer." access="readOnly"
        minEntries="1" maxEntries="1" version="2.12">
      <description>
        This object defines a periodic timer instance. The periodic timer
        instance has attributes for when the timer is to begin
        ({{param|StartTime}}) and end ({{param|EndTime}}) as well as the
        interval to use.
      </description>

      <parameter name="StartTime" access="readWrite">
        <description>
          Date and time, based on {{bibref|RFC3339}}, that the {{object}}
          instance is to begin operation.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="EndTime" access="readWrite">
        <description>
          Date and time, based on {{bibref|RFC3339}}, that the {{object}}
          instance is to end operation.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="Interval" access="readWrite">
        <description>
          The tolerable duration, in {{units}}, of the interval for this
          {{object}} instance.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.LMAP.Event.{i}.CalendarTimer." access="readOnly"
        minEntries="1" maxEntries="1" version="2.12">
      <description>
        This object defines a calendar timer instance.

        The calendar timer instance has attributes for when the timer is to
        begin ({{param|StartTime}}) and end ({{param|EndTime}}) as well as the
        schedule of the recurrence.

        The algrorithm that defines how the schedule elements are evaluated is
        defined in {{bibref|LMAPIFM}}.

        If the value of any of the {{param|ScheduleMonths}},
        {{param|ScheduleDaysOfMonth}}, {{param|ScheduleDaysOfWeek}},
        {{param|ScheduleHoursOfDay}}, {{param|ScheduleMinutesOfHour}} or
        {{param|ScheduleSecondsOfMinute}} is {{empty}} then any actions that
        use this object will not be invoked.
      </description>

      <parameter name="StartTime" access="readWrite">
        <description>
          Date and time that the {{object}} instance is to begin this
          operation.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="EndTime" access="readWrite">
        <description>
          Date and time that the {{object}} instance is to end this operation.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="ScheduleMonths" access="readWrite">
        <description>
          This parameter represents either a list of the months of year that
          are applied to the schedule or an asterisk (*) that represents all
          the elements of the list.

          Each entry in the months of the year list can be a numeric value or
          the name of the month (january (1), february (2), march (3), april
          (4), may (5), june (6), july (7), august (8), september (9), october
          (10), november (11), december (12)).
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="ScheduleDaysOfMonth" access="readWrite">
        <description>
          This parameter represents either a list of the days of the month
          (1-31) that are applied to the schedule or an asterisk (*) that
          represents all the elements of the list.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="ScheduleDaysOfWeek" access="readWrite">
        <description>
          This parameter represents either a list of the days of the week that
          are applied to the schedule or an asterisk (*) that represents all
          the elements of the list.

          Each entry in the days of the week list can be a numeric value or the
          name of the day (sunday (1), monday (2), tuesday (3), wednesday (4),
          thursday (5), friday (6), saturday (7)).
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="ScheduleHoursOfDay" access="readWrite">
        <description>
          This parameter represents either a list of the hours of the day
          (0-23) that are applied to the schedule or an asterisk (*) that
          represents all the elements of the list.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="ScheduleMinutesOfHour" access="readWrite">
        <description>
          This parameter represents either a list of the minutes of the hour
          (0-59) that are applied to the schedule or an asterisk (*) that
          represents all the elements of the list.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="ScheduleSecondsOfMinute" access="readWrite">
        <description>
          This parameter represents either a list of the minutes of the hour
          (0-59) that are applied to the schedule or an asterisk (*) that
          represents all the elements of the list.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="EnableScheduleTimezoneOffset" access="readWrite">
        <description>
          When {{true}}, the value of the {{param|ScheduleTimezoneOffset}}
          parameter is applied to the schedule elements.

          When {{false}}, the device's system timezone offset is applied to the
          schedule elements.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="ScheduleTimezoneOffset" access="readWrite">
        <description>
          The timezone offset, in {{units}}, to be applied to the schedule
          elements.
        </description>
        <syntax>
          <int>
            <units value="hours"/>
            <range minInclusive="-23" maxInclusive="23"/>
          </int>
        </syntax>
      </parameter>
    </object>

    <object name="Device.LMAP.Event.{i}.OneOff." access="readOnly"
        minEntries="1" maxEntries="1" version="2.12">
      <description>
        This object defines a one off timer instance.
      </description>

      <parameter name="StartTime" access="readWrite">
        <description>
          Date and time, based on {{bibref|RFC3339}}, that the {{object}}
          instance is to begin operation.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WWC." access="readOnly" minEntries="1" maxEntries="1"
        version="2.14">
      <description>
        Base object for Wireline Wireless Convergence. The controller can use
        this object to learn the supported 5G features and whether the 5G-RG is
        operating in 5G mode.
      </description>

      <parameter name="HwCapabilities" access="readOnly">
        <description>
          {{list}} Wireline Wireless Convergence hardware capabilities
          supported by the CPE. {{enum}}
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="NG-RAN">
              <description>
                Able to use the 5G Radio Access Network
              </description>
            </enumeration>
            <enumeration value="E-UTRAN">
              <description>
                Able to use the 4G (LTE) Radio Access Network
              </description>
            </enumeration>
            <enumeration value="W-5GAN">
              <description>Able to use fixed access networks</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="SwCapabilities" access="readOnly">
        <description>
          {{list}} Wireline Wireless Convergence software capabilities
          supported by the CPE. {{enum}}
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="FN-RG">
              <description>
                Able to use PPPoE or IPoE as specified in {{bibref|TR-124i5}}
                or earlier
              </description>
            </enumeration>
            <enumeration value="5G-RG">
              <description>
                Able to use 5G capabilities such as specified in
                {{bibref|TR-124i6}}
              </description>
            </enumeration>
            <enumeration value="ATSSS">
              <description>
                Able to support multi access PDUs using Access Traffic Steering
                Switching Splitting (ATSSS)
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="Mode" access="readWrite">
        <description>
          Sets the mode the CPE is operating in. Whilst the CPE is expected to
          auto-negotiate, a service provider may need to lock the CPE in
          {{enum|FN-RG}} or {{enum|5G-RG}} mode for stability. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="FN-RG">
              <description>
                The CPE only attempts to authenticate using PPPoE or IPoE
              </description>
            </enumeration>
            <enumeration value="5G-RG">
              <description>
                The CPE only attempts to register using 5G NAS
              </description>
            </enumeration>
            <enumeration value="Auto">
              <description>The CPE may operate in either mode</description>
            </enumeration>
          </string>
          <default value="Auto" type="factory"/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The mode the CPE is operating in. A CPE in {{enum|Negotiating}} is
          deemed to be auto-negotiating its operational mode. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="FN-RG"/>
            <enumeration value="5G-RG"/>
            <enumeration value="Negotiating"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="AccessNetworkNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="URSPNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WWC.AccessNetwork.{i}." access="readOnly"
        numEntriesParameter="AccessNetworkNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.14">
      <description>
        Each table entry describes a single access network. The entire table is
        built by the 5G-RG upon startup. The primary purpose is to show the
        registration and connectivity status of each access network. Typically
        a 5G-RG would register on each available access network. A minimum of
        one access network must be in the CM-CONNECTED state in order to
        support N1 messaging.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Name"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.14">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name" access="readOnly">
        <description>
          The textual name of the Access Network entry as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite">
        <description>
          {{reference}} Specifies the egress interface associated with this
          "AccessNetwork" entry. This MUST be a layer 1 interface.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="RegistrationStatus" access="readOnly">
        <description>
          The registration status of this entry. See
          {{bibref|3GPP-TS.23.501|Clause 5.3.2}}. {{enum}}

          The {{enum|Error}} value MAY be used by the CPE to indicate a locally
          defined error condition.
        </description>
        <syntax>
          <string>
            <enumeration value="RM_REGISTERED">
              <description>
                The 5G-RG has successfully authenticated and has been assigned
                an AMF to manage it.
              </description>
            </enumeration>
            <enumeration value="RM_DEREGISTERED">
              <description>
                The 5G-RG is no longer managed by an AMF.
              </description>
            </enumeration>
            <enumeration value="RM_UNDEFINED">
              <description>
                The access network will always start in this state and
                indicates that the 5G-RG has never registered to the access
                network. This state is only used by the 5G-RG and is never
                present in the AMF.
              </description>
            </enumeration>
            <enumeration value="Error">
              <description>
                The {{param|LastError}} parameter is updated with the detail of
                this error.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="ConnectionStatus" access="readOnly">
        <description>
          The connection status of this entry. A 5G-RG is deemed in the
          {{enum|CM_CONNECTED|ConnectionStatus}} state if there is a NAS
          signalling connection established between the 5G-RG and AMF. If
          {{param|RegistrationStatus}} transitions from
          {{enum|RM_REGISTERED|RegistrationStatus}} to
          {{enum|RM_DEREGISTERED|RegistrationStatus}}, the status of {{param}}
          must change to {{enum|CM_UNDEFINED||ConnectionStatus}}. See
          {{bibref|3GPP-TS.23.501|Clause 5.3.3}}. {{enum}}

          The {{enum|Error}} value MAY be used by the CPE to indicate a locally
          defined error condition.
        </description>
        <syntax>
          <string>
            <enumeration value="CM_IDLE">
              <description>
                The 5G-RG does not have a NAS connection over N1 to the AMF.
              </description>
            </enumeration>
            <enumeration value="CM_CONNECTED">
              <description>
                The 5G-RG does have a NAS connection over N1 to the AMF.
              </description>
            </enumeration>
            <enumeration value="CM_UNDEFINED">
              <description>
                The access network will always start in this state and
                indicates that the 5G-RG is not registered to the access
                network. This state is only used by the 5G-RG and is never
                present in the AMF.
              </description>
            </enumeration>
            <enumeration value="Error">
              <description>
                The {{param|LastError}} parameter is updated with the detail of
                this error.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="AccessNetworkType" access="readOnly">
        <description>
          The access network type of this entry. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="NG-RAN"/>
            <enumeration value="E-UTRAN"/>
            <enumeration value="W-5GAN"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastError" access="readOnly">
        <description>
          Error code. See {{bibref|3GPP-TS.24.501|Clause 9.11.4.2}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WWC.AccessNetwork.{i}.GUTI." access="readOnly"
        minEntries="1" maxEntries="1" version="2.14">
      <description>
        A 5G Globally Unique Temporary Identity (GUTI) securely identifes an
        CPE by keeping the permanent User Equipment (UE identifier (IMSI)
        hidden. This identity is globally unique and assigned by the AMF at the
        time of registration.

        See {{bibref|3GPP-TS.23.003|.Clause 2.10}}.
      </description>

      <parameter name="PLMN" access="readOnly" version="2.14">
        <description>
          The Public Land Mobile Network (PLMN) globally identifies the service
          provider. A PLMN consists of a country code (MCC) and a network code
          (MNC).

          See {{bibref|3GPP-TS.23.003|Clause 12.1}}.

          For example, a PLMN of 50101 refers to MCC 501 (Australia) and MNC 01
          (Telstra).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="AMFId" access="readOnly" version="2.14">
        <description>
          The AMFId identifies an AMF instance within a service provider's
          network. In conjunction with the PLMN, it forms a Globally Unique AMF
          Id (GUAMI) which globally uniquely identifes an AMF.

          See {{bibref|3GPP-TS.23.003|Clause 2.10}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="TMSI" access="readOnly" version="2.14">
        <description>
          The Temporary Mobile Subscriber Identity (TMSI) is allocatred by the
          AMF at the time of registration and uniquely identifies the CPE.

          See {{bibref|3GPP-TS.23.003|Clause 2.4}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WWC.URSP.{i}." access="readOnly"
        numEntriesParameter="URSPNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.14">
      <description>
        User equipment Router Selection Policy (URSP) is a table of rules used
        to determine which network slice and data network to route a PDU over.
        Typically a 5G-RG would search the URSP table in precedence order
        matching the traffic descriptor types against the service it was
        setting up. For example a 5G-RG would search for 'connection
        capabilities' matching 'ims' in order to establish a dedicated PDU
        session for telephony.

        See {{bibref|3GPP-TS.24.526|Clause 5.2}} for a full description of the
        URSP data elements.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="Precedence"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.14">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Precedence" access="readOnly">
        <description>
          The precedence value of URSP rule field is used to specify the
          precedence of the URSP rule among all URSP rules in the URSP. The
          precedence value in the range from 0 to 255 (decimal). The higher the
          value of the precedence value field, the lower the precedence of the
          URP rule is. Multiple URSP rules in the URSP shall not have the same
          precedence value.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TrafficDescriptorNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WWC.URSP.{i}.TrafficDescriptor.{i}."
        access="readOnly"
        numEntriesParameter="TrafficDescriptorNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.14">
      <description>
        A set of rules for a given precedence that must be matched in order to
        select a router in the form of data network and slice. Selection
        criteria range from destination IP addresses to connection
        capabilities.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.14">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Type" access="readOnly">
        <description>
          Traffic Descriptor Type. See {{bibref|3GPP-TS.24.526|Clause 5.2}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="Value" access="readOnly">
        <description>
          Traffic descriptor value. See {{bibref|3GPP-TS.24.526|Clause 5.2}}.
        </description>
        <syntax>
          <string>
            <size maxLength="1024"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="RouteSelectionDescriptorNumberOfEntries"
          access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WWC.URSP.{i}.TrafficDescriptor.{i}.RouteSelectionDescriptor.{i}."
        access="readOnly"
        numEntriesParameter="RouteSelectionDescriptorNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.14">
      <description>
        This object describes the URSP Route Selection Descriptor table which
        provides a table of data networks and network slices used in PDU
        establishment. Table entries are used in precedence order until a
        successful PDU session is established.

        See ((bibref|3GPP-TS.23.503|Annex A}} for an example URSP rule
        traversal.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="Precedence"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.14">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Precedence" access="readOnly">
        <description>
          The precedence value of route selection descriptor field is used to
          specify the precedence of the route selection descriptor among all
          route selection descriptors in the URSP rule. The precedence value in
          the range from 0 to 255 (decimal). The higher the value of the
          precedence value field, the lower the precedence of the route
          selection descriptor is.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SSC" access="readOnly">
        <description>
          Session and Service Continuity (SSC) Mode: Indicates that the traffic
          of the matching application shall be routed via a PDU Session
          supporting the included SSC Mode. See {{bibref|3GPP-TS.24.501|Clause
          9.11.4.16}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="3"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="DNN" access="readOnly">
        <description>
          The DNN value contains an APN as defined in
          {{bibref|3GPP-TS.23.003|Clause 9.1.1}}.
        </description>
        <syntax>
          <string>
            <size maxLength="100"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="PDUSessionType" access="readOnly">
        <description>
          PDU session type. See {{bibref|3GPP-TS.24.501|Clause 9.11.4.11}}.
          {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="IPv4"/>
            <enumeration value="IPv6"/>
            <enumeration value="IPv4v6"/>
            <enumeration value="Unstructured"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="AccessType" access="readOnly">
        <description>
          The preferred access type for the PDU session. For a 5G-RG non-3GPP
          refers to any fixed access technology.

          See {{bibref|3GPP-TS.24.501|Clause 9.11.3.11}}. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="3GPP access"/>
            <enumeration value="Non-3GPP access"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.WWC.URSP.{i}.TrafficDescriptor.{i}.RouteSelectionDescriptor.{i}.NetworkSlice."
        access="readOnly" minEntries="1" maxEntries="1" version="2.14">
      <description>
        Describes a S-NSSAI Information element providing network slice
        specification.

        See {{bibref|3GPP-TS.24.501|Clause 9.11.2.8}}
      </description>

      <parameter name="SliceServiceType" access="readOnly" version="2.14">
        <description>
          The Slice Service Type (SST). {{enum}}

          See {{bibref|3GPP-TS.23.501|Clause 5.15.2.2}}.
        </description>
        <syntax>
          <dataType ref="SST"/>
        </syntax>
      </parameter>

      <parameter name="SliceDifferentiator" access="readOnly" version="2.14">
        <description>
          The Slice differentiator is an optional number used to differentiate
          network slices with the same SST.

          See {{bibref|3GPP-TS.23.501|Clause 5.15.2.1}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.PDU." access="readOnly" minEntries="1" maxEntries="1"
        status="deprecated" version="2.14">
      <description>
        The logical connection between the 5G-RG and data network is the
        Protocol Data Unit (PDU). The Device.PDU subtree describes each PDU
        sessions properties together with the QoS rules specific to that PDU
        session.

        {{deprecated|2.19|because it is no longer a top level object}}
      </description>

      <parameter name="SessionNumberOfEntries" access="readOnly"
          status="deprecated">
        <description>
          {{numentries}}

          {{deprecated|2.19|because it is no longer a top level object}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.PDU.Session.{i}." access="readOnly"
        status="deprecated" numEntriesParameter="SessionNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.14">
      <description>
        Contains all the properties of a PDU session instance, ranging from
        maximum bitrate through to assigned network slice. This object contains
        the {{object}} table.

        {{deprecated|2.19|because it has moved to
        {{object|Device.SessionManagement.PDU.{i}}}}}
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.14">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readOnly" status="deprecated">
        <description>
          {{reference}} The IP Interface associated with the ''PDU'' entry.

          {{deprecated|2.19|because it has moved to
          {{object|Device.SessionManagement.Session.{i}}}}}
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="##.IP.Interface."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SessionID" access="readOnly" status="deprecated">
        <description>
          PDU session identity. See {{bibref|3GPP-TS.24.501|Clause 9.4}}.

          {{deprecated|2.19|because it has moved to
          {{object|Device.SessionManagement.Session.{i}}}}}
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="15"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="PTI" access="readOnly" status="deprecated">
        <description>
          Procedure transaction identity. See {{bibref|3GPP-TS.24.501|Clause
          9.6}}.

          {{deprecated|2.19|because it has moved to
          {{object|Device.SessionManagement.PDU.{i}}}}}
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="254"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SessionType" access="readOnly" status="deprecated">
        <description>
          The PDU session type indicating the protocol the PDU is capable of
          carrying. See {{bibref|3GPP-TS.24.501|Clause 9.11.4.11}}. {{enum}}

          {{deprecated|2.19|because it has moved to
          {{object|Device.SessionManagement.Session.{i}}}}}
        </description>
        <syntax>
          <string>
            <enumeration value="IPv4"/>
            <enumeration value="IPv6"/>
            <enumeration value="IPv4v6"/>
            <enumeration value="Unstructured"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SSC" access="readOnly" status="deprecated">
        <description>
          Session and Service Continuity (SSC) Mode: Indicates that the traffic
          of the matching application shall be routed via a PDU Session
          supporting the included SSC Mode. See {{bibref|3GPP-TS.24.501|Clause
          9.11.4.16}}

          {{deprecated|2.19|because it has moved to
          {{object|Device.SessionManagement.PDU.{i}}}}}
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="3"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SessionAMBRDownlink" access="readOnly"
          status="deprecated">
        <description>
          Downlink Aggregate Maximum Bit Rate in {{units}}. See
          {{bibref|3GPP-TS.24.501|Clause 9.11.4.14}}.

          {{deprecated|2.19|because it has moved to
          {{object|Device.SessionManagement.PDU.{i}}}}}
        </description>
        <syntax>
          <unsignedLong>
            <units value="bits per second"/>
          </unsignedLong>
        </syntax>
      </parameter>

      <parameter name="SessionAMBRUplink" access="readOnly"
          status="deprecated">
        <description>
          Uplink Aggregate Maximum Bit Rate in {{units}}. See
          {{bibref|3GPP-TS.24.501|Clause 9.11.4.14}}.

          {{deprecated|2.19|because it has moved to
          {{object|Device.SessionManagement.PDU.{i}}}}}
        </description>
        <syntax>
          <unsignedLong>
            <units value="bits per second"/>
          </unsignedLong>
        </syntax>
      </parameter>

      <parameter name="LastError" access="readOnly" status="deprecated">
        <description>
          Error code. See {{bibref|3GPP-TS.24.501|Clause 9.11.4.2}}

          {{deprecated|2.19|because it is no longer required}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PDUIPv4Address" access="readOnly" status="deprecated">
        <description>
          The IPv4 address allocated to the PDU session by the SMF. This
          parameter is only valid if {{param|SessionType}} has a value of
          {{enum|IPv4|SessionType}} or {{enum|IPv4v6|SessionType}}. See
          {{bibref|3GPP-TS.24.501|Clause 9.11.4.10}}.

          {{deprecated|2.19|because it has moved to
          {{param|Device.SessionManagement.Session.{i}.Interface}}}}
        </description>
        <syntax>
          <dataType ref="IPv4Address"/>
        </syntax>
      </parameter>

      <parameter name="PDUIPv6InterfaceIdentifier" access="readOnly"
          status="deprecated">
        <description>
          The interface identifier for the IPv6 link local address allocated to
          the PDU session by the SMF. This parameter is only valid if
          {{param|SessionType}} has a value of {{enum|IPv6|SessionType}} or
          {{enum|IPv4v6|SessionType}}. See {{bibref|3GPP-TS.24.501|Clause
          9.11.4.10}}.

          {{deprecated|2.19|because it has moved to
          {{param|Device.SessionManagement.Session.{i}.Interface}}}}
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="RQTimerValue" access="readOnly" status="deprecated">
        <description>
          Reflective QoS timeout in {{units}}. See
          {{bibref|3GPP-TS.24.501|Clause 9.11.2.3}}.

          {{deprecated|2.19|because it has moved to
          {{object|Device.SessionManagement.PDU.{i}}}}}
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="AlwaysOn" access="readOnly" status="deprecated">
        <description>
          Always on PDU session indication. The purpose of the Always-on PDU
          session indication information element is to indicate whether a PDU
          session is established as an always-on PDU session.

          See {{bibref|3GPP-TS.24.501|clause 9.11.4.3}}.

          {{deprecated|2.19|because it has moved to
          {{object|Device.SessionManagement.PDU.{i}}}}}
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="DNN" access="readOnly" status="deprecated">
        <description>
          The Data Network Name used by the PDU. The DNN value may be from the
          optional S-NSSAI specified at the time of PDU establishment or a
          default determined by the 5G core. A DNN is analogous to an LTE APN
          used the same format defined in {{bibref|3GPP-TS.24.501|clause
          9.11.2.1A}}.

          {{deprecated|2.19|because it has moved to
          {{param|Device.SessionManagement.Session.{i}.APN}}}}
        </description>
        <syntax>
          <string>
            <size maxLength="100"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="QoSRuleNumberOfEntries" access="readOnly"
          status="deprecated">
        <description>
          {{numentries}}

          {{deprecated|2.19|because it has moved to
          {{param|Device.SessionManagement.PDU.{i}.QoSRuleNumberOfEntries}}}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="QoSFlowNumberOfEntries" access="readOnly"
          status="deprecated">
        <description>
          {{numentries}}

          {{deprecated|2.19|because it has moved to
          {{param|Device.SessionManagement.PDU.{i}.QoSFlowNumberOfEntries}}}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.PDU.Session.{i}.PCO." access="readOnly"
        status="deprecated" minEntries="1" maxEntries="1" version="2.14">
      <description>
        Policy Configuration Options (PCO) is an optional set of configuration
        parameters supplied by the network at the request of the 5G-RG as
        defined in {{bibref|3GPP-TS.24.008|clause 10.5.6.3}}.

        {{deprecated|2.19|because it has moved to
        {{object|Device.SessionManagement.Session.{i}.PCO}}}}
      </description>

      <parameter name="IPv6PCSCF" access="readOnly" status="deprecated">
        <description>
          The IPv6 address of the P-CSCF used for VoLTE telephony.

          {{deprecated|2.19|because it has moved to
          {{param|Device.SessionManagement.Session.{i}.PCO.IPv6PCSCF}}}}
        </description>
        <syntax>
          <dataType ref="IPv6Address"/>
        </syntax>
      </parameter>

      <parameter name="IPv6DNS" access="readOnly" status="deprecated">
        <description>
          Each entry is an IPv6 DNS server.

          {{deprecated|2.19|because it has moved to
          {{param|Device.SessionManagement.Session.{i}.PCO.IPv6DNS}}}}
        </description>
        <syntax>
          <list/>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="IPv4PCSCF" access="readOnly" status="deprecated">
        <description>
          The IPv4 address of the P-CSCF used for VoLTE telephony.

          {{deprecated|2.19|because it has moved to
          {{param|Device.SessionManagement.Session.{i}.PCO.IPv4PCSCF}}}}
        </description>
        <syntax>
          <dataType ref="IPv4Address"/>
        </syntax>
      </parameter>

      <parameter name="IPv4DNS" access="readOnly" status="deprecated">
        <description>
          Each entry is an IPv4 DNS server.

          {{deprecated|2.19|because it has moved to
          {{param|Device.SessionManagement.Session.{i}.PCO.IPv4DNS}}}}
        </description>
        <syntax>
          <list/>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.PDU.Session.{i}.NetworkSlice." access="readOnly"
        status="deprecated" minEntries="1" maxEntries="1" version="2.14">
      <description>
        Describes a S-NSSAI Information element providing network slice
        specification.

        See {{bibref|3GPP-TS.24.501|Clause 9.11.2.8}}

        {{deprecated|2.19|because it has moved to
        {{object|Device.SessionManagement.PDU.{i}.NetworkSlice}}}}
      </description>

      <parameter name="SliceServiceType" access="readOnly" version="2.14"
          status="deprecated">
        <description>
          The Slice Service Type (SST). {{enum}}

          See {{bibref|3GPP-TS.23.501|Clause 5.15.2.2}}.

          {{deprecated|2.19| due to entire PDU object being moved to
          {{object|Device.SessionManagement.PDU.{i}}}}}
        </description>
        <syntax>
          <dataType ref="SST"/>
        </syntax>
      </parameter>

      <parameter name="SliceDifferentiator" access="readOnly" version="2.14"
          status="deprecated">
        <description>
          The Slice differentiator is an optional number used to differentiate
          network slices with the same SST.

          See {{bibref|3GPP-TS.23.501|Clause 5.15.2.1}}.

          {{deprecated|2.19| due to entire PDU object being moved to
          {{object|Device.SessionManagement.PDU.{i}}}}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.PDU.Session.{i}.QoSRule.{i}." access="readOnly"
        status="deprecated" numEntriesParameter="QoSRuleNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.14">
      <description>
        This object describes the PDU QoS Rule table. The purpose of the QoS
        Rule table is to assign a QFI to mark traffic based on a set of
        classification rules. The rules are set by the network operator and are
        specific for each PDU.

        For example:

        * A QoS Rule with a default used for general traffic has the following
          parameters.

        * QFI=1

        * DQR=1 - Default rule

        * Filter 1 for rule

        * Direction=bidirectional

        * Type=1 - Match all

        * A QoS Rule matching a voice service.

        * QFI=32

        * DQR=0

        * Filter 1 for rule

        * Direction=bidirectional

        * Type=33 - Destination IPv6 range

        * Value=2001:8000/48 - Destination IPv6 range

        * Filter 2 for rule

        * Direction=bidirectional

        * Type=16 - Destination IPv4 address with netmask

        * Value=203.1.0.0 255.255.255.0 - Destination IPv4 address with netmask

        A full description can be found at {{bibref|3GPP-TS.24.501|clause
        9.11.4.13}} QoS Rules

        {{deprecated|2.19|because it has moved to
        {{object|Device.SessionManagement.PDU.{i}.QoSRule.{i}}}}}
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="Identifier"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.14">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Identifier" access="readOnly" status="deprecated">
        <description>
          The QoS rule identifier field is used to identify the QoS rule.

          {{deprecated|2.19|because it has moved to
          {{param|Device.SessionManagement.PDU.{i}.QoSRule.{i}.Identifier}}}}
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Precedence" access="readOnly" status="deprecated">
        <description>
          The QoS rule precedence field is used to specify the precedence of
          the QoS rule among all QoS rules. The higher the value of the QoS
          rule precedence field, the lower the precedence of that QoS rule is.

          {{deprecated|2.19|because it has moved to
          {{param|Device.SessionManagement.PDU.{i}.QoSRule.{i}.Precedence}}}}
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Segregation" access="readOnly" status="deprecated">
        <description>
          In the UE to network direction the segregation bit indicates whether
          the UE is requesting the network to bind service data flows described
          by the QoS rule to a dedicated QoS Flow. When {{true}} segregation is
          requested.

          {{deprecated|2.19|because it has moved to
          {{param|Device.SessionManagement.PDU.{i}.QoSRule.{i}.Segregation}}}}
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="QFI" access="readOnly" status="deprecated">
        <description>
          QoS Flow identifier.

          {{deprecated|2.19|because it has moved to
          {{param|Device.SessionManagement.PDU.{i}.QoSRule.{i}.QFI}}}}
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="63"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="DQR" access="readOnly" status="deprecated">
        <description>
          Default QoS rule flag. When {{true}} this QoS rule is the default QoS
          rule.

          {{deprecated|2.19|because it has moved to
          {{param|Device.SessionManagement.PDU.{i}.QoSRule.{i}.DQR}}}}
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="FilterNumberOfEntries" access="readOnly"
          status="deprecated">
        <description>
          {{numentries}}

          {{deprecated|2.19|because it has moved to
          {{param|Device.SessionManagement.PDU.{i}.QoSRule.{i}.FilterNumberOfEntries}}}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.PDU.Session.{i}.QoSRule.{i}.Filter.{i}."
        status="deprecated" access="readOnly"
        numEntriesParameter="FilterNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.14">
      <description>
        This object describes the PDU QoS Rule Filter table. As each packet
        filter is logically anded with the others, there shall not be more than
        one occurrence of each packet filter component type.

        {{deprecated|2.19|because it has moved to
        {{object|Device.SessionManagement.PDU.{i}.QoSRule.{i}.Filter.{i}}}}}
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.14">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Direction" access="readOnly" status="deprecated">
        <description>
          The packet filter direction field is used to indicate for what
          traffic direction the filter applies. See
          {{bibref|3GPP-TS.24.501|Clause 9.11.4.13}} {{enum}}

          {{deprecated|2.19|because it has moved to
          {{param|Device.SessionManagement.PDU.{i}.QoSRule.{i}.Filter.{i}.Direction}}}}
        </description>
        <syntax>
          <string>
            <enumeration value="downlink"/>
            <enumeration value="uplink"/>
            <enumeration value="bidirectional"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Type" access="readOnly" status="deprecated">
        <description>
          Packet filter component type identifier. See
          {{bibref|3GPP-TS.24.501|Clause 9.11.4.13}}.

          {{deprecated|2.19|because it has moved to
          {{param|Device.SessionManagement.PDU.{i}.QoSRule.{i}.Filter.{i}.Type}}}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="Value" access="readOnly" status="deprecated">
        <description>
          Matching value for the component type. See
          {{bibref|3GPP-TS.24.501|Clause 9.11.4.13}}.

          {{deprecated|2.19|because it has moved to
          {{param|Device.SessionManagement.PDU.{i}.QoSRule.{i}.Filter.{i}.Value}}}}
        </description>
        <syntax>
          <string>
            <size maxLength="1024"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.PDU.Session.{i}.QoSFlow.{i}." access="readOnly"
        status="deprecated" numEntriesParameter="QoSFlowNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.14">
      <description>
        Table of all QoS Flow Indicators (QFI) and their properties supported
        by the access network for this particular PDU.

        For example:

        * A QoS Flow with a QFI of 1 used for general traffic has the following
          parameters.

        * FiveQI=8

        * A QoS Flow with a QFI of 32 used for voice traffic with a guaranteed
          bitrate of 150k has the following parameters.

        * FiveQI=1

        * GFBRUplink=150

        * GFBRDownlink=150

        {{deprecated|2.19|because it has moved to
        {{object|Device.SessionManagement.PDU.{i}}}}}
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="QFI"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.14">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="QFI" access="readOnly" status="deprecated">
        <description>
          QoS Flow Identifier.

          {{deprecated|2.19|because it has moved to
          {{param|Device.SessionManagement.PDU.{i}.QoSFlow.{i}.QFI}}}}
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="63"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="FiveQI" access="readOnly" status="deprecated">
        <description>
          5G QoS Identifier. See {{bibref|3GPP-TS.23.501|Clause 5.7.4}} for a
          table of standardised 5QI QoS characteristics.

          {{deprecated|2.19|because it has moved to
          {{param|Device.SessionManagement.PDU.{i}.QoSFlow.{i}.FiveQI}}}}
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="GFBRUplink" access="readOnly" status="deprecated">
        <description>
          Guaranteed Flow Bitrate - Upstream (expressed in {{units}}).

          {{deprecated|2.19|because it has moved to
          {{param|Device.SessionManagement.PDU.{i}.QoSFlow.{i}.GFBRUplink}}}}
        </description>
        <syntax>
          <unsignedLong>
            <units value="bits per second"/>
          </unsignedLong>
        </syntax>
      </parameter>

      <parameter name="GFBRDownlink" access="readOnly" status="deprecated">
        <description>
          Guaranteed Flow Bitrate - Downstream (expressed in {{units}}).

          {{deprecated|2.19|because it has moved to
          {{param|Device.SessionManagement.PDU.{i}.QoSFlow.{i}.GFBRDownlink}}}}
        </description>
        <syntax>
          <unsignedLong>
            <units value="bits per second"/>
          </unsignedLong>
        </syntax>
      </parameter>

      <parameter name="MFBRUplink" access="readOnly" status="deprecated">
        <description>
          Maximum Flow Bitrate - Upstream (expressed in {{units}}).

          {{deprecated|2.19|because it has moved to
          {{param|Device.SessionManagement.PDU.{i}.QoSFlow.{i}.MFBRUplink}}}}
        </description>
        <syntax>
          <unsignedLong>
            <units value="bits per second"/>
          </unsignedLong>
        </syntax>
      </parameter>

      <parameter name="MFBRDownlink" access="readOnly" status="deprecated">
        <description>
          Maximum Flow Bitrate - Downstream (expressed in {{units}}).

          {{deprecated|2.19|because it has moved to
          {{param|Device.SessionManagement.PDU.{i}.QoSFlow.{i}.MFBRDownlink}}}}
        </description>
        <syntax>
          <unsignedLong>
            <units value="bits per second"/>
          </unsignedLong>
        </syntax>
      </parameter>

      <parameter name="AveragingWindow" access="readOnly" status="deprecated">
        <description>
          Averaging window for both uplink and downlink in {{units}}.

          {{deprecated|2.19|because it has moved to
          {{param|Device.SessionManagement.PDU.{i}.QoSFlow.{i}.AveragingWindow}}}}
        </description>
        <syntax>
          <unsignedInt>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="EPSBearer" access="readOnly" status="deprecated">
        <description>
          EPS Bearer Identity. See {{bibref|3GPP-TS.24.301|Clause 9.3.2}}.

          {{deprecated|2.19|because it has moved to
          {{param|Device.SessionManagement.PDU.{i}.QoSFlow.{i}.EPSBearer}}}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.FWE." access="readOnly" minEntries="1" maxEntries="1"
        version="2.14">
      <description>
        5G Wireline wireless Encapsulation transport for data plane. See
        {{bibref|RFC8822}}.
      </description>

      <parameter name="LinkNumberOfEntries">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.FWE.Link.{i}."
        numEntriesParameter="LinkNumberOfEntries" minEntries="0"
        maxEntries="unbounded" dmr:fixedObject="true" version="2.14">
      <description>
        5G Wireline wireless Encapsulation link layer 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" version="2.19">
        <description>
          Enables or disables the interface.

          This parameter is based on ''ifAdminStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status">
        <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" version="2.14">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name">
        <description>
          The textual name of the interface as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" 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>
        </syntax>
      </parameter>
    </object>

    <object name="Device.FWE.Link.{i}.Stats." minEntries="1" maxEntries="1"
        version="2.14">
      <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="Reset" access="readWrite" version="2.19">
        <description>
          Set this to {{true}} to reset all this object's statistics counters
          to zero.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BytesSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface,
          including framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface, including
          framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} that could not be transmitted
          because of errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} that contained errors
          preventing them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="ErrorsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="DiscardPacketsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were not addressed to a multicast or broadcast
          address at this layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a multicast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a broadcast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnknownProtoPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received via the interface which were
          discarded because of an unknown or unsupported protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Logical." access="readOnly" minEntries="1"
        maxEntries="1" version="2.16">
      <description>
        Logical object. This object models several Logical interface objects,
        each representing a different stack layer, including:
        {{object|Interface}}. {{object|Interface}} is a logical interface which
        can point to other stackable interface layers.

        The intention of the logical interface is to simplify the configuration
        management of individual {{bibref|TR-181i2}} services. Instead of
        configuring the individual network services with a physical interface
        and deal with reconfiguration problems that may arise from switching
        between WAN interfaces. The intention is that the network services are
        configured with a logical interface and that this configuration stays
        unchanged during the switching between WAN interfaces. The software
        service (For example a WAN mode manger.) responsible for handling the
        WAN interface changes must then only care about rewriting the
        LowerLayers parameter of the Logical Interface Objects.
      </description>

      <parameter name="InterfaceNumberOfEntries">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Logical.Interface.{i}." access="readWrite"
        numEntriesParameter="InterfaceNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.16">
      <description>
        Logical interface table (a stackable interface object as described in
        {{bibref|TR-181i2|Section 4.2}}). This table models only logical
        interfaces.
      </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">
        <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" version="2.16">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name" access="readWrite">
        <description>
          The textual name of the logical interface as assigned by a static
          configuration file or dynamically by a controller.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" 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>
    </object>

    <object name="Device.Logical.Interface.{i}.Stats." minEntries="1"
        maxEntries="1" version="2.16">
      <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}}.

        This information SHOULD be mirrored or aggregated from the active
        underlying interfaces.
      </description>

      <parameter name="Reset" access="readWrite" version="2.19">
        <description>
          Set this to {{true}} to reset all this object's statistics counters
          to zero.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BytesSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface,
          including framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface, including
          framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} that could not be transmitted
          because of errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} that contained errors
          preventing them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="ErrorsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="DiscardPacketsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were not addressed to a multicast or broadcast
          address at this layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a multicast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} that higher-level protocols requested
          for transmission and which were addressed to a broadcast address at
          this layer, including those that were discarded or not sent.

          Note that IPv6 does not define broadcast addresses, so IPv6 {{units}}
          will never cause this counter to increment.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a broadcast address at this
          layer.

          Note that IPv6 does not define broadcast addresses, so IPv6 {{units}}
          will never cause this counter to increment.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnknownProtoPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received via the interface which were
          discarded because of an unknown or unsupported protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>
    </object>

    <object name="Device.XPON." access="readOnly" minEntries="1"
        maxEntries="1" version="2.16">
      <description>
        This object models one or more xPON interfaces or ONUs as specified by
        the ITU based PON standards. It does not address IEEE based PON
        standards (like EPON). An ONU performs tasks such as traffic
        classification, VLAN manipulation, GEM port mapping, aggregation and/or
        forwarding between one or more UNIs and one or more ANIs.
      </description>

      <parameter name="ONUNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.XPON.ONU.{i}." access="readOnly"
        numEntriesParameter="ONUNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.16">
      <description>
        This object models one xPON interface or ONU as specified by the ITU
        based PON standards.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Name"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables this ONU. If disabled, the ONU should prevent
          user traffic from flowing, suppress notifications, and power down as
          much as possible.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Name" access="readOnly">
        <description>
          The textual name of the ONU as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Version" access="readOnly">
        <description>
          This attribute identifies the version of the ONU as defined by the
          vendor.

          This parameter is based on ''Version'' from {{bibref|G.988|Section
          9.1.1}}.
        </description>
        <syntax>
          <string>
            <size maxLength="14"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="EquipmentID" access="readOnly">
        <description>
          This attribute may be used to identify the specific type of ONU.

          This parameter is based on ''Equipment ID'' from
          {{bibref|G.988|Section 9.1.2}}.
        </description>
        <syntax>
          <string>
            <size maxLength="20"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SoftwareImageNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="EthernetUNINumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ANINumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.XPON.ONU.{i}.EthernetUNI.{i}." access="readOnly"
        numEntriesParameter="EthernetUNINumberOfEntries" minEntries="0"
        maxEntries="unbounded" dmr:fixedObject="true" version="2.16">
      <description>
        Ethernet UNI table (a stackable interface object as described in
        {{bibref|TR-181i2|Section 4.2}}). This object models User Network
        Interfaces carrying Ethernet frames.

        An EthernetUNI can be a virtual or a physical UNI. If the ONU is
        managed via OMCI, an EthernetUNI has an associated service, which is
        either a VEIP (see {{bibref|G.988|Section 9.5.5}}) or a PPTP Ethernet
        UNI (see {{bibref|G.988|Section 9.5.1}}).

        If the associated service is a VEIP, the ONU shows a VEIP ME in the
        OMCI MIB. If it's a PPTP Ethernet UNI, the ONU shows a PPTP Ethernet
        UNI ME in the OMCI MIB. It is expected the associated service is a VEIP
        for a virtual UNI, and that it is a PPTP Ethernet UNI for a physical
        UNI. However, some network operators require that the ONU shows a PPTP
        Ethernet UNI ME instead of a VEIP ME in its OMCI MIB even if the
        EthernetUNI models a virtual UNI.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Name"/>
      </uniqueKey>

      <parameter name="Enable" access="readOnly">
        <description>
          Indicates whether this interface is enabled ({{true}}) or not
          ({{false}}). If the ONU is managed via OMCI, the interface is enabled
          if the OLT set the parameter ''Administrative state'' of the ME
          managing the associated service to 0. (The value 0 unlocks the
          functions performed by the ME.) The ME is either the VEIP ME (see
          {{bibref|G.988|Section 9.5.5}}) or the PPTP Ethernet UNI ME (see
          {{bibref|G.988|Section 9.5.1}}.

          This parameter is based on ''ifAdminStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status">
        <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}}.

          Because the interface includes layer 1, the {{enum|LowerLayerDown}}
          value SHOULD never be used.

          If the ONU is managed via OMCI, then {{param}} can only be
          {{enum|Up}} if the ONU has been provisioned at OMCI level in such a
          way that this interface is able to pass traffic.
        </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" version="2.16">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name">
        <description>
          The textual name of the interface as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" 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.

          If {{object}} models a physical UNI, it represents a layer 1
          interface; if {{object}} models a virtual UNI, it virtualizes a layer
          1 interface.
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string>
            <pathRef refType="strong" targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Upstream" version="2.19">
        <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="ANIs" access="readOnly">
        <description>
          {{list}} {{reference}} References all associated ANI interfaces.

          An ONU is potentially capable of forwarding frames between a UNI and
          its associated ANI interfaces. This parameter defines such a
          relationship. However, the list does not mean that the forwarding is
          actually happening, or the forwarding policies have been provisioned,
          between the UNI and the associated ANI interfaces. For an ONU with a
          single TC layer device, the parameter value can be either empty for
          simplicity, or can be the path name of the associated ANI. For an ONU
          with multiple TC layer devices, this parameter value may have one or
          more path names.
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string>
            <pathRef refType="strong" targetParent="#.ANI." targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="InterdomainID" access="readOnly">
        <description>
          String to identify the associated service in the ONU management
          domain to the TR-181 management domain. If the ONU is managed via
          OMCI, it is recommended to format this string as
          "(service_type,MEID)", with service_type being an enumeration of
          ''VEIP'' or ''PPTPEthernetUNI'', and MEID the value of the attribute
          "Managed entity ID" of the ME instance managing the service
          associated with this EthernetUNI.

          Examples:

          * (VEIP,1025)

          * (PPTPEthernetUNI,257)

          An OSS (Operations Support System) having access to both the TR-181
          and the OMCI domain can then find out which EthernetUNI instance
          represents a certain VEIP or PPTPEthernetUNI ME instance in the OMCI
          domain.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="InterdomainName" access="readOnly">
        <description>
          String that provides an additional way to identify the associated
          service to the TR-181 management domain. If the ONU is managed via
          OMCI and if the service associated with this EthernetUNI is a VEIP,
          then the value of this parameter is the value of the attribute
          "Interdomain name" of the corresponding VEIP ME instance.
        </description>
        <syntax>
          <string>
            <size maxLength="25"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.XPON.ONU.{i}.EthernetUNI.{i}.Stats." minEntries="1"
        maxEntries="1" version="2.16">
      <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}}.

        Transmit direction has PON as destination. Receive direction has PON as
        source.
      </description>

      <parameter name="Reset" access="readWrite" version="2.19">
        <description>
          Set this to {{true}} to reset all this object's statistics counters
          to zero.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BytesSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface,
          including framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface, including
          framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} transmitted out of the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received on the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} that could not be transmitted
          because of errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} that contained errors
          preventing them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="ErrorsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" activeNotify="canDeny">
        <description>
          The total number of outbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of inbound {{units}} 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>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSent" activeNotify="canDeny"
          dmr:previousParameter="DiscardPacketsReceived">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were not addressed to a multicast or broadcast
          address at this layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a multicast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsSent" activeNotify="canDeny">
        <description>
          The total number of {{units}} 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>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of received {{units}}, delivered by this layer to a
          higher layer, which were addressed to a broadcast address at this
          layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="UnknownProtoPacketsReceived" activeNotify="canDeny">
        <description>
          The total number of {{units}} received via the interface which were
          discarded because of an unknown or unsupported protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>
    </object>

    <object name="Device.XPON.ONU.{i}.SoftwareImage.{i}." access="readOnly"
        numEntriesParameter="SoftwareImageNumberOfEntries" minEntries="0"
        maxEntries="2" version="2.16">
      <description>
        This table models the software images stored in the ONU.

        It is expected this table has two entries: the ONU normally creates two
        instances of the Software Image ME to model the 2 software images in
        the ONU.

        This object is based on {{bibref|G.988|Section 9.1.4}}.
      </description>
      <uniqueKey functional="false">
        <parameter ref="ID"/>
      </uniqueKey>

      <parameter name="ID" access="readOnly">
        <description>
          The ID as assigned by the CPE to this {{object}} entry.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="1"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Version" access="readOnly">
        <description>
          A string identifying the software version.

          This parameter is based on ''Version'' from {{bibref|G.988|Section
          9.1.4}}.
        </description>
        <syntax>
          <string>
            <size maxLength="14"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="IsCommitted" access="readOnly">
        <description>
          This parameter indicates whether or not the associated software image
          is committed.

          This parameter is based on ''Is committed'' from
          {{bibref|G.988|Section 9.1.4}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="IsActive" access="readOnly">
        <description>
          This parameter indicates whether the associated software image is
          active ({{true}}) or inactive ({{false}}).

          This parameter is based on ''Is active'' from {{bibref|G.988|Section
          9.1.4}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="IsValid" access="readOnly">
        <description>
          This parameter indicates whether the associated software image is
          valid ({{true}}) or invalid ({{false}}).

          This parameter is based on ''Is valid'' from {{bibref|G.988|Section
          9.1.4}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.XPON.ONU.{i}.ANI.{i}." access="readOnly"
        numEntriesParameter="ANINumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.16">
      <description>
        Access Node Interface (ANI) table. An ANI models the xPON MAC/PHY as
        defined in the ITU-T PON standards.

        This object is not an interface object as described in
        {{bibref|TR-181i2|Section 4.2}}, but it has many of the same core
        parameters as an interface object, and they follow largely the same
        conventions. The most important deviations are:

        * This object does not have a LowerLayers parameter.

        * The value LowerLayerDown is not a valid value for its Status
          parameter.

        Because it's not an interface object, it does not occur in the
        {{object|###.InterfaceStack}} table.
      </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.

          If disabled, the device should force the ONU state of this ANI to O1
          (Initial state).

          This parameter is based on ''ifAdminStatus'' from {{bibref|RFC2863}}.

          Note: forcing the state to O1 implies the device disables the TX
          laser of the associated transceiver(s). It's not required to disable
          the RX part of the transceivers as well.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The current operational state of the interface. Although this object
          is not an interface object, it follows largely the conventions of
          {{bibref|TR-181i2|Section 4.2.2}}. The most important deviation is
          that LowerLayerDown is not a valid value. {{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}} becomes {{true}} then {{param}} SHOULD change
          to {{enum|Up}} if and only if the interface is able to transmit and
          receive network traffic; more specifically, {{param}} should change
          to {{enum|Up}} if {{param|TC.ONUActivation.ONUState}} becomes O5; 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 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="Error" optional="true"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Alias" access="readWrite" version="2.16">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Name" access="readOnly">
        <description>
          The textual name of the ANI 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 interface entered its
          current operational state.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="PONMode" access="readOnly">
        <description>
          PON mode, defines the detected or configured PON mode of the ANI.
          {{enum}}

          {{object|Transceiver}} has a parameter of the same name. For proper
          operation, the PON mode of the transceiver(s) corresponding to this
          ANI must be equal to the PON mode of this ANI. But a user might e.g.
          accidentally insert a G-PON SFP while the PON mode of the ANI is
          XGS-PON.
        </description>
        <syntax>
          <string>
            <enumeration value="Unknown"/>
            <enumeration value="G-PON"/>
            <enumeration value="XG-PON"/>
            <enumeration value="NG-PON2"/>
            <enumeration value="XGS-PON"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="TransceiverNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SFPReferenceList" access="readOnly" version="2.19">
        <description>
          Small-form Factor Pluggable (SFP) entries associated with this
          interface.
        </description>
        <syntax>
          <list/>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="###.SFPs.SFPCage."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.XPON.ONU.{i}.ANI.{i}.Stats." access="readOnly"
        minEntries="1" maxEntries="1" version="2.16">
      <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}}.

        Transmit direction has PON as destination. Receive direction has PON as
        source.
      </description>

      <parameter name="BytesSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of bytes transmitted out of the interface, including
          framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of bytes received on the interface, including
          framing characters.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of Ethernet frames transmitted out of the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of Ethernet frames received on the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of outbound Ethernet frames that could not be
          transmitted because of errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of inbound Ethernet frames that contained errors
          preventing them from being forwarded to the UNI(s).
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of Ethernet frames 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>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of Ethernet frames, forwarded by this interface to
          the UNI(s), which were not addressed to a multicast or broadcast
          address at this layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of outbound Ethernet frames 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>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of inbound Ethernet frames 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>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of Ethernet frames requested for transmission and
          which were addressed to a multicast address at this layer, including
          those that were discarded or not sent.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received Ethernet frames, forwarded by this
          interface to the UNI(s), which were addressed to a multicast address
          at this layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of Ethernet frames requested for transmission on the
          PON and which were addressed to a broadcast address at this layer,
          including those that were discarded or not sent.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received Ethernet frames, forwarded by this
          interface to the UNI(s), which were addressed to a broadcast address
          at this layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="UnknownProtoPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of Ethernet frames received via the interface which
          were discarded because of an unknown or unsupported protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.XPON.ONU.{i}.ANI.{i}.TC." access="readOnly"
        minEntries="1" maxEntries="1" version="2.16">
      <description>
        This object represents an ITU-T PON TC layer device.
      </description>
    </object>

    <object name="Device.XPON.ONU.{i}.ANI.{i}.TC.ONUActivation."
        access="readOnly" minEntries="1" maxEntries="1" version="2.16">
      <description>
        This object shows info related to the activation of this ANI by an OLT.
      </description>

      <parameter name="ONUState" access="readOnly">
        <description>
          ONU activation state. {{enum}}

          See:

          * {{bibref|G.9807.1|Section C.12}}

          * {{bibref|G.984.3|Section 10}}

          * {{bibref|G.987.3|Section 12}}

          * {{bibref|G.989.3|Section 12}}
        </description>
        <syntax>
          <string>
            <enumeration value="O1"/>
            <enumeration value="O2"/>
            <enumeration value="O3"/>
            <enumeration value="O2-3"/>
            <enumeration value="O4"/>
            <enumeration value="O5"/>
            <enumeration value="O6"/>
            <enumeration value="O7"/>
            <enumeration value="O8"/>
            <enumeration value="O9"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="VendorID" access="readOnly">
        <description>
          Identifies the vendor of the ONU. See {{bibref|G.988|Section 9.1.1}}.
        </description>
        <syntax>
          <string>
            <size maxLength="4"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SerialNumber" access="readOnly">
        <description>
          Represents the combination of the Vendor-ID and the Vendor-specific
          serial number (VSSN). The parameter shows the serial number in a
          human readable format. Example: if the vendor ID is ABCD and the VSSN
          encodes the number 1234568, the value of this parameter is
          ABCD12345678. See {{bibref|G.988|Section 9.1.1}}.
        </description>
        <syntax>
          <string>
            <size maxLength="12"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ONUID" access="readOnly">
        <description>
          Identifier that the OLT assigns to this ANI during the activation.
          See:

          * {{bibref|G.9807.1|Section C.6.1.5.6}}

          * {{bibref|G.984.3|Section 5.5.2}}

          * {{bibref|G.987.3|Section 6.4.2}}

          * {{bibref|G.989.3|Section 6.1.5.6}}
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="1022"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.XPON.ONU.{i}.ANI.{i}.TC.Authentication."
        access="readOnly" version="2.17">
      <description>
        This object shows info related to authentication of the ONU to the OLT.
      </description>

      <parameter name="Password" access="readWrite">
        <description>
          All ITU based PON standards specify authentication by PLOAM password
          or registration ID.

          See:

          * {{bibref|G.9807.1|Section C.15.2.1}}

          * {{bibref|G.984.3|Section VI.2}}

          * {{bibref|G.987.3|Section 15.2.1}}

          * {{bibref|G.989.3|Section 15.2.1}}

          All those standards mention that a method to enter the password is
          beyond their scope. This parameter and the parameter
          {{param|HexadecimalPassword}} standardize a method to enter the
          password.

          In case of G-PON as PON mode, the password can be up to 10 bytes
          long. See {{bibref|G.984.3|Section 9.2.4.2}}. For the other PON
          modes, the password can be up to 36 bytes long. See:

          * {{bibref|G.9807.1|Section C.11.3.4.2}}

          * {{bibref|G.987.3|Section 11.3.4.2}}

          * {{bibref|G.989.3|Section 11.3.4.2}}

          If {{param|HexadecimalPassword}} is {{false}}, the password is in
          ASCII format. Then all 95 printable characters with decimal codes in
          the range 32 to 126 inclusive are allowed. Each character corresponds
          with 1 byte in the password.

          If {{param|HexadecimalPassword}} is {{true}}, the password is in
          hexadecimal format. Then only the characters 0 to 9, a to f, and A to
          F are allowed. Each character corresponds with 1 nibble in the
          password.

          Depending on the value of {{param|HexadecimalPassword}} and the PON
          mode, a different number of characters are applicable. If
          {{param|HexadecimalPassword}} is {{false}}:

          * In case of G-PON as PON mode, only the 1st 10 characters are
            applicable.

          * In case of another PON mode, only the 1st 36 characters are
            applicable.

          If {{param|HexadecimalPassword}} is {{true}}:

          * In case of G-PON as PON mode, the 1st 20 characters are all
            relevant. The other characters are not applicable.

          * In case of another PON mode, all 72 characters are relevant.

          This parameter is set to {{empty}} if no authentication via a
          password is required.
        </description>
        <syntax secured="true">
          <string>
            <size maxLength="72"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="HexadecimalPassword" access="readWrite">
        <description>
          If {{false}}, {{param|Password}} is in ASCII format. If {{true}},
          {{param|Password}} is in hexadecimal format.

          See {{param|Password}} for more info.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.XPON.ONU.{i}.ANI.{i}.TC.PM." access="readOnly"
        minEntries="1" maxEntries="1" version="2.16">
      <description>
        Performance monitoring (PM) counters.
      </description>
    </object>

    <object name="Device.XPON.ONU.{i}.ANI.{i}.TC.PM.PHY." access="readOnly"
        minEntries="1" maxEntries="1" version="2.16">
      <description>
        PHY PM.
      </description>

      <parameter name="CorrectedFECBytes" access="readOnly">
        <description>
          The number of bytes that were corrected by the FEC function.

          See:

          * {{bibref|G.9807.1|Table C.14.1}}

          * {{bibref|G.987.3|Table 14-1}}

          * {{bibref|G.989.3|Table 14-1}}
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="CorrectedFECCodewords" access="readOnly">
        <description>
          Count of FEC codewords that contained errors but were corrected by
          the FEC function.

          See:

          * {{bibref|G.9807.1|Table C.14.1}}

          * {{bibref|G.987.3|Table 14-1}}

          * {{bibref|G.989.3|Table 14-1}}
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="UncorrectableFECCodewords" access="readOnly">
        <description>
          Count of FEC codewords that contained errors and could not be
          corrected by the FEC function.

          See:

          * {{bibref|G.9807.1|Table C.14.1}}

          * {{bibref|G.987.3|Table 14-1}}

          * {{bibref|G.989.3|Table 14-1}}
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="TotalFECCodewords" access="readOnly">
        <description>
          Count of total received FEC codewords.

          See:

          * {{bibref|G.9807.1|Table C.14.1}}

          * {{bibref|G.987.3|Table 14-1}}

          * {{bibref|G.989.3|Table 14-1}}
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="PSBdHECErrorCount" access="readOnly">
        <description>
          HEC error in any of the fields of PSBd.

          See:

          * {{bibref|G.9807.1|Table C.14.1}}

          * {{bibref|G.987.3|Table 14-1}}

          * {{bibref|G.989.3|Table 14-1}}
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="HeaderHECErrorCount" access="readOnly">
        <description>
          HEC errors received in the DS XGTC or FS header.

          This counter is called:

          * "FS HEC error count" in {{bibref|G.9807.1|Table C.14.1}} and
            {{bibref|G.989.3|Table 14-1}}.

          * "XGTC HEC error count" in {{bibref|G.987.3|Table 14-1}}.

          See:

          * {{bibref|G.9807.1|Table C.14.1}}

          * {{bibref|G.987.3|Table 14-1}}

          * {{bibref|G.989.3|Table 14-1}}
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="UnknownProfile" access="readOnly">
        <description>
          ONU could not transmit because the specified burst profile was not
          known.

          See:

          * {{bibref|G.9807.1|Table C.14.1}}

          * {{bibref|G.987.3|Table 14-1}}

          * {{bibref|G.989.3|Table 14-1}}
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.XPON.ONU.{i}.ANI.{i}.TC.PM.GEM." access="readOnly"
        minEntries="1" maxEntries="1" version="2.16">
      <description>
        (X)GEM PM.
      </description>

      <parameter name="FramesSent" access="readOnly">
        <description>
          Total number of (X)GEM frames transmitted.

          See:

          * {{bibref|G.9807.1|Table C.14.1}}

          * {{bibref|G.987.3|Table 14-1}}

          * {{bibref|G.989.3|Table 14-1}}
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="FramesReceived" access="readOnly">
        <description>
          Total number of (X)GEM frames received.

          See:

          * {{bibref|G.9807.1|Table C.14.1}}

          * {{bibref|G.987.3|Table 14-1}}

          * {{bibref|G.989.3|Table 14-1}}
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="FrameHeaderHECErrors" access="readOnly">
        <description>
          XGEM frame header HEC errors.

          Number of events involving loss of XGEM channel delineation.

          See:

          * {{bibref|G.9807.1|Table C.14.1}}

          * {{bibref|G.987.3|Table 14-1}}

          * {{bibref|G.989.3|Table 14-1}}
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="KeyErrors" access="readOnly">
        <description>
          XGEM key errors.

          XGEM frames discarded because of unknown or invalid encryption key.
          Examples include: no unicast or broadcast key established for
          specified key index, key index indicating encrypted XGEM frame on a
          XGEM port that is not provisioned for encryption, key index
          indicating upstream encryption on a XGEM port that is provisioned for
          downstream encryption only, or invalid key index (11). This count is
          included in {{param|FramesReceived}}.

          See:

          * {{bibref|G.9807.1|Table C.14.1}}

          * {{bibref|G.987.3|Table 14-1}}

          * {{bibref|G.989.3|Table 14-1}}
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.XPON.ONU.{i}.ANI.{i}.TC.PM.PLOAM." access="readOnly"
        minEntries="1" maxEntries="1" version="2.16">
      <description>
        PLOAM PM.
      </description>

      <parameter name="MICErrors" access="readOnly">
        <description>
          PLOAM MIC errors.

          Counter of received PLOAM messages with MIC errors.

          See:

          * {{bibref|G.9807.1|Table C.14.1}}

          * {{bibref|G.987.3|Table 14-1}}

          * {{bibref|G.989.3|Table 14-1}}
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>

      <parameter name="DownstreamMessageCount" access="readOnly">
        <description>
          Downstream PLOAM message count.

          Count of PLOAM messages sent by OLT, received by ONU, either
          broadcast or directed to the specific ONU-ID.

          See:

          * {{bibref|G.9807.1|Table C.14.1}}

          * {{bibref|G.987.3|Table 14-1}}

          * {{bibref|G.989.3|Table 14-1}}
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="RangingTime" access="readOnly">
        <description>
          Count of Ranging_Time PLOAM messages sent by OLT.

          It provides a base for transmission time drift estimation.

          See:

          * {{bibref|G.9807.1|Table C.14.1}}

          * {{bibref|G.987.3|Table 14-1}}

          * {{bibref|G.989.3|Table 14-1}}
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="UpstreamMessageCount" access="readOnly">
        <description>
          Upstream PLOAM message count.

          Count of messages (other than Acknowledgement) sent by ONU to OLT.

          See:

          * {{bibref|G.9807.1|Table C.14.1}}

          * {{bibref|G.987.3|Table 14-1}}

          * {{bibref|G.989.3|Table 14-1}}
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.XPON.ONU.{i}.ANI.{i}.TC.PM.OMCI." access="readOnly"
        minEntries="1" maxEntries="1" version="2.16">
      <description>
        OMCI PM.
      </description>

      <parameter name="BaselineMessagesReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          OMCI baseline message count.

          See:

          * {{bibref|G.9807.1|Table C.14.1}}

          * {{bibref|G.987.3|Table 14-1}}

          * {{bibref|G.989.3|Table 14-1}}
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="ExtendedMessagesReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          OMCI extended message count.

          See:

          * {{bibref|G.9807.1|Table C.14.1}}

          * {{bibref|G.987.3|Table 14-1}}

          * {{bibref|G.989.3|Table 14-1}}
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="MICErrors" access="readOnly" activeNotify="canDeny">
        <description>
          Count of received OMCI messages with MIC errors.

          See:

          * {{bibref|G.9807.1|Table C.14.1}}

          * {{bibref|G.987.3|Table 14-1}}

          * {{bibref|G.989.3|Table 14-1}}
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.XPON.ONU.{i}.ANI.{i}.TC.GEM." access="readOnly"
        minEntries="1" maxEntries="1" version="2.16">
      <description>
        Info about the GEM ports of this ANI.
      </description>

      <parameter name="PortNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.XPON.ONU.{i}.ANI.{i}.TC.GEM.Port.{i}."
        access="readOnly" numEntriesParameter="PortNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.16">
      <description>
        GEM port table. Each entry gives info about a(n) (X)GEM port.
      </description>
      <uniqueKey functional="false">
        <parameter ref="PortID"/>
      </uniqueKey>

      <parameter name="PortID" access="readOnly">
        <description>
          Identifies a GEM port.

          See:

          * {{bibref|G.9807.1|Section C.6.1.5.8}}

          * {{bibref|G.984.3|Section 5.5.5}}

          * {{bibref|G.987.3|Section 6.4.4}}

          * {{bibref|G.989.3|Section 6.1.5.8}}
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65534"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Direction" access="readOnly">
        <description>
          Type of connection this GEM port is used for. {{enum}}

          See: {{bibref|G.988|Section 9.2.3}}.
        </description>
        <syntax>
          <string>
            <enumeration value="UNI-to-ANI"/>
            <enumeration value="ANI-to-UNI"/>
            <enumeration value="bidirectional"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="PortType" access="readOnly">
        <description>
          GEM port type.
        </description>
        <syntax>
          <string>
            <enumeration value="unicast"/>
            <enumeration value="multicast"/>
            <enumeration value="broadcast"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.XPON.ONU.{i}.ANI.{i}.TC.GEM.Port.{i}.PM."
        access="readOnly" minEntries="1" maxEntries="1" version="2.16">
      <description>
        Performance monitoring (PM) counters for this (X)GEM port.
      </description>

      <parameter name="FramesSent" access="readOnly">
        <description>
          (X)GEM frames transmitted by this (X)GEM port.

          See:

          * {{bibref|G.9807.1|Table C.14.1}}

          * {{bibref|G.987.3|Table 14-1}}

          * {{bibref|G.989.3|Table 14-1}}
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>

      <parameter name="FramesReceived" access="readOnly">
        <description>
          (X)GEM frames received by this (X)GEM port.

          See:

          * {{bibref|G.9807.1|Table C.14.1}}

          * {{bibref|G.987.3|Table 14-1}}

          * {{bibref|G.989.3|Table 14-1}}
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.XPON.ONU.{i}.ANI.{i}.TC.PerformanceThresholds."
        access="readOnly" minEntries="1" maxEntries="1" version="2.16">
      <description>
        Performance thresholds.
      </description>

      <parameter name="SignalFail" access="readOnly">
        <description>
          Signal fail (SF) threshold.

          This parameter specifies the downstream bit error rate (BER)
          threshold to detect the SF alarm. When this value is y, the BER
          threshold is 10^-y^.

          This parameter is based on ''Signal fail (SF) threshold'' from
          {{bibref|G.988|Section 9.2.1}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="3" maxInclusive="8"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SignalDegrade" access="readOnly">
        <description>
          Signal degrade (SD) threshold.

          This parameter specifies the downstream BER threshold to detect the
          SD alarm. When this value is x, the BER threshold for SD is 10^-x^.
          The SD threshold must be lower than the SF threshold; i.e., x &gt; y.

          This parameter is based on ''Signal degrade (SD) threshold'' from
          {{bibref|G.988|Section 9.2.1}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="4" maxInclusive="10"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.XPON.ONU.{i}.ANI.{i}.TC.Alarms." access="readOnly"
        minEntries="1" maxEntries="1" version="2.16">
      <description>
        Alarms at TC level for this ANI.
      </description>

      <parameter name="LOS" access="readOnly">
        <description>
          Loss of signal. See {{bibref|G.984.3|Section 11.1.2}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="LOF" access="readOnly">
        <description>
          Loss of frame. See {{bibref|G.984.3|Section 11.1.2}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="SF" access="readOnly">
        <description>
          Signal failed. See {{bibref|G.984.3|Section 11.1.2}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="SD" access="readOnly">
        <description>
          Signal degraded. See {{bibref|G.984.3|Section 11.1.2}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="LCDG" access="readOnly">
        <description>
          Loss of GEM channel delineation. See {{bibref|G.984.3|Section
          11.1.2}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="TF" access="readOnly">
        <description>
          Transmitter failure. See {{bibref|G.984.3|Section 11.1.2}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="SUF" access="readOnly">
        <description>
          Start-up failure. See {{bibref|G.984.3|Section 11.1.2}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MEM" access="readOnly">
        <description>
          Message error message. See {{bibref|G.984.3|Section 11.1.2}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="DACT" access="readOnly">
        <description>
          Deactivate ONU-ID. See {{bibref|G.984.3|Section 11.1.2}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="DIS" access="readOnly">
        <description>
          Disabled ONU. See {{bibref|G.984.3|Section 11.1.2}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MIS" access="readOnly">
        <description>
          Link mismatching. See {{bibref|G.984.3|Section 11.1.2}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="PEE" access="readOnly">
        <description>
          When the ONU receives a PEE message. See {{bibref|G.984.3|Section
          11.1.2}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="RDI" access="readOnly">
        <description>
          Remote defect indication. See {{bibref|G.984.3|Section 11.1.2}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="LODS" access="readOnly">
        <description>
          Loss of downstream synchronization. See {{bibref|G.9807.1|}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="ROGUE" access="readOnly">
        <description>
          The ANI behaves rogue: it is not transmitting in a manner consistent
          with parameters specified in the ITU-T PON standards. Hence it can
          threaten all upstream transmissions on the PON, causing interference
          and disrupting communications of other ONUs on the PON. An example of
          rogue behavior is transmitting in the wrong timeslot.

          See:

          * {{bibref|G.9807.1|Section C.19}}

          * {{bibref|G.989.3|Section 19}}
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.XPON.ONU.{i}.ANI.{i}.Transceiver.{i}."
        access="readOnly" numEntriesParameter="TransceiverNumberOfEntries"
        minEntries="0" maxEntries="2" version="2.16">
      <description>
        Transceiver table. Each entry models a PON transceiver.
      </description>
      <uniqueKey functional="false">
        <parameter ref="ID"/>
      </uniqueKey>

      <parameter name="ID" access="readOnly">
        <description>
          The ID as assigned by the CPE to this Transceiver entry.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="1"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Identifier" access="readOnly">
        <description>
          Transceiver type. Allowed values are given by {{bibref|SFF-8024|Table
          4-1}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="VendorName" access="readOnly">
        <description>
          Vendor name. See {{bibref|SFF-8472|Table 4-1}}.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="VendorPartNumber" access="readOnly">
        <description>
          Vendor part number. See "Vendor PN" in {{bibref|SFF-8472|Table 4-1}}.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="VendorRevision" access="readOnly">
        <description>
          Vendor revision. See "Vendor rev" in {{bibref|SFF-8472|Table 4-1}}.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="PONMode" access="readOnly">
        <description>
          PON mode, reports the PON mode of the transceiver.
        </description>
        <syntax>
          <string>
            <enumeration value="Unknown"/>
            <enumeration value="G-PON"/>
            <enumeration value="XG-PON"/>
            <enumeration value="NG-PON2"/>
            <enumeration value="XGS-PON"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Connector" access="readOnly">
        <description>
          Connector type.
        </description>
        <syntax>
          <string>
            <enumeration value="Unknown"/>
            <enumeration value="LC">
              <description>
                Lucent Connector, Little Connector, or Local Connector.
              </description>
            </enumeration>
            <enumeration value="SC">
              <description>
                Subscriber connector, square connector or standard connector.
              </description>
            </enumeration>
            <enumeration value="ST">
              <description>Straight tip connector.</description>
            </enumeration>
            <enumeration value="FC">
              <description>Ferrule Connector or Fiber Channel.</description>
            </enumeration>
            <enumeration value="MT-RJ">
              <description>Mechanical Transfer Registered Jack.</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="NominalBitRateDownstream" access="readOnly">
        <description>
          Nominal data rate downstream in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="kbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="NominalBitRateUpstream" access="readOnly">
        <description>
          Nominal data rate upstream in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="kbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RxPower" access="readOnly">
        <description>
          Measured RX power in {{units}}.
        </description>
        <syntax>
          <int>
            <units value="0.1 dBm"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="TxPower" access="readOnly">
        <description>
          Measured TX power in {{units}}.
        </description>
        <syntax>
          <int>
            <units value="0.1 dBm"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="Voltage" access="readOnly">
        <description>
          Measured supply voltage in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="mV"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Bias" access="readOnly">
        <description>
          Measured bias current in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="µA"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Temperature" access="readOnly">
        <description>
          Measured temperature in {{units}}.

          A value of -274 (which is below absolute zero) indicates a good
          reading has not been obtained.
        </description>
        <syntax>
          <int>
            <range minInclusive="-274"/>
            <units value="degrees celsius"/>
          </int>
        </syntax>
      </parameter>
    </object>

    <object name="Device.SSH." access="readOnly" minEntries="1" maxEntries="1"
        version="2.16">
      <description>
        This object contains global parameters relating to the Secure Shell
        clients and or servers implementations that are active in the CPE.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the SSH service.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The status of the SSH service. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled">
              <description>
                Indicates that the SSH service is disabled.
              </description>
            </enumeration>
            <enumeration value="Enabled">
              <description>
                Indicates that the SSH service is enabled.
              </description>
            </enumeration>
            <enumeration value="Error" optional="true">
              <description>
                Indicates that the SSH service has encountered an error.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="ServerNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="AuthorizedKeyNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.SSH.Server.{i}." access="readWrite"
        numEntriesParameter="ServerNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.16">
      <description>
        This object contains parameters relating to a SSH server instance.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the SSH server instance. When {{param}} is set to
          {{false}}, any active sessions must be forcibly terminated and the
          {{param|ActivationDate}} is reset.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The status of the SSH server instance. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled">
              <description>
                Indicates that the SSH server instance is disabled.
              </description>
            </enumeration>
            <enumeration value="Enabled">
              <description>
                Indicates that the SSH server instance is enabled.
              </description>
            </enumeration>
            <enumeration value="Error" optional="true">
              <description>
                Indicates that the SSH server instance has encountered an
                error.
              </description>
            </enumeration>
            <enumeration value="Error_Misconfigured">
              <description>
                Indicates that a necessary configuration value is undefined or
                invalid.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="Alias" access="readWrite" version="2.16">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite">
        <description>
          The IP Interface associated with the {{object}} entry.

          If {{empty}} is specified, the service should listen on all
          interfaces.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent=".IP.Interface."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Port" access="readWrite">
        <description>
          Specify the port used by the SSH server.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="65535"/>
          </unsignedInt>
          <default type="object" value="22"/>
        </syntax>
      </parameter>

      <parameter name="IdleTimeout" access="readWrite">
        <description>
          When the session is inactive, it is automatically terminated after
          {{param}} amount of {{units}}. A value of ''0'' disables this
          feature.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="180"/>
        </syntax>
      </parameter>

      <parameter name="KeepAlive" access="readWrite">
        <description>
          Every amount of {{param}} {{units}} a keep alive message is sent. A
          value of ''0'' disables this feature.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="300"/>
        </syntax>
      </parameter>

      <parameter name="AllowRootLogin" access="readWrite">
        <description>
          Permit SSH users to login as root.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="AllowPasswordLogin" access="readWrite">
        <description>
          Permit SSH users to login using a password.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="AllowRootPasswordLogin" access="readWrite">
        <description>
          Permit the root SSH user to login using a password.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="MaxAuthTries" access="readWrite">
        <description>
          Maximum authentication tries allowed before disconnect
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="3"/>
        </syntax>
      </parameter>

      <parameter name="AllowAllIPv4" access="readWrite" version="2.16">
        <description>
          Allow access from any IPv4 address. The source prefixes defined in
          {{param|IPv4AllowedSourcePrefix}} will be ignored.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="IPv4AllowedSourcePrefix" access="readWrite"
          version="2.16">
        <description>
          Allow only access from the provided list of IPv4 prefixes.

          When {{param}} is set to {{empty}} and {{param|AllowAllIPv4}} is set
          to ''false'', no incoming connections are allowed.

          When {{param|AllowAllIPv4}} is set ''true'', {{param}} is ignored.
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="AllowAllIPv6" access="readWrite" version="2.16">
        <description>
          Allow access from any IPv6 address. The source prefixes defined in
          {{param|IPv6AllowedSourcePrefix}} will be ignored.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="IPv6AllowedSourcePrefix" access="readWrite"
          version="2.16">
        <description>
          Allow only access from the provided list of IPv6 prefixes.

          When {{param}} is set to {{empty}} and {{param|AllowAllIPv6}} is set
          to ''false'', no incoming connections are allowed.

          When {{param|AllowAllIPv6}} is set ''true'', {{param}} is ignored.
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="ActivationDate" access="readOnly">
        <description>
          Activation date indicates when the server instance has been activated
          and the {{param|Enable}} is set to {{true}}.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="AutoDisableDuration" access="readWrite">
        <description>
          The SSH server instance will be disabled when the the {{param}}
          elapses, and configuration must be done in {{units}}. At the end, the
          coressponding {{param|Enable}} parameter of the SSH server instance
          is automatically changed to false {{false}}. Any active sessions must
          be forcibly terminated. 0 means the the SSH server instance is always
          active.
        </description>
        <syntax>
          <unsignedInt>
            <units value="minutes"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="PID" access="readOnly">
        <description>
          Current Process Identifier of the SSH server instance.

          Note: This parameter was demoted to readOnly in the Device:2.18
          version.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="UserGroupAccess" access="readWrite" version="2.19">
        <description>
          Restricts access to the SSH server instance to the given user group.
          When {{empty}}, everyone has access.
        </description>
        <syntax>
          <string>
            <pathRef refType="weak" targetParent=".Users.Group."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SessionNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MaxAccessLogEntries" access="readWrite" version="2.19">
        <description>
          The maximum number of entries available in the {{object|AccessLog}}
          table. Defines the maximum number of {{object|AccessLog}} instances
          that can be stored on the device.

          When the maximum {{object|AccessLog}} entries as indicated by
          {{param}} are reached, the next boot entry overrides the object with
          the oldest {{param|AccessLog.{i}.TimeStamp}}.

          Set this parameter to 0 to completely disable the creation of
          {{object|AccessLog}} instances.

          Set this parameter to -1 to leave it open to the implementation to
          decide the maximum number of {{object|AccessLog}} instances that may
          be stored on the device.

          Reducing the {{param}} will cause for the implementation to delete
          the oldest {{object|AccessLog}} instances.

          This setting does not affect the counting of access logs.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="AccessLogNumberOfEntries" access="readOnly"
          version="2.19">
        <description/>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.SSH.Server.{i}.Session.{i}." access="readOnly"
        numEntriesParameter="SessionNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.16">
      <description>
        Active SSH session list.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.16">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="User" access="readOnly">
        <description>
          The user to whom the session belongs to.

          Note: This parameter was demoted to readOnly in the Device:2.18
          version.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent=".Users.User."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="IPAddress" access="readOnly">
        <description>
          IP address of the remote SSH client.
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
        </syntax>
      </parameter>

      <parameter name="Port" access="readOnly">
        <description>
          Port of the remote SSH client.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.SSH.Server.{i}.AccessLog.{i}." access="readOnly"
        minEntries="0" maxEntries="unbounded"
        numEntriesParameter="AccessLogNumberOfEntries" version="2.19">
      <description>
        This table logs each SSH login attempt made on the device.

        When the number of entries reaches the maximum specified by
        {{param|#.MaxAccessLogEntries}}, the oldest entry (determined by
        {{param|TimeStamp}}) will be deleted and a new entry will be created
        for the newest login attempt.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.19">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="TimeStamp" access="readOnly">
        <description>
          The date and time when the SSH login attempt occurred.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="User" access="readOnly">
        <description>
          The username provided during the SSH access attempt.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="IPAddress" access="readOnly">
        <description>
          The IP address of the client that attempted to access the SSH server.
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
        </syntax>
      </parameter>

      <parameter name="Port" access="readOnly">
        <description>
          The port number of the client that attempted to access the SSH
          server.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          Represents the outcome or status of the SSH access attempt or
          session. The parameter indicates whether the attempt was successful
          or encountered an error.
        </description>
        <syntax>
          <string>
            <enumeration value="SuccessfulLogin">
              <description>
                The user successfully authenticated and logged in.
              </description>
            </enumeration>
            <enumeration value="FailedLogin">
              <description>
                The authentication attempt failed due to incorrect credentials
                or other verification errors.
              </description>
            </enumeration>
            <enumeration value="Error" optional="true">
              <description>
                An unexpected error occurred during the login process,
                preventing login.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.SSH.Server.{i}.Stats." access="readOnly"
        minEntries="1" maxEntries="1" version="2.19">
      <description>
        This table provides statistical data on SSH login attempts for the
        server instance.
      </description>

      <parameter name="NumberOfFailedAttempts" access="readOnly">
        <description>
          The total number of failed SSH login attempts since the device's last
          upgrade or initial boot.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="NumberOfFailedAttemptsSinceActivation"
          access="readOnly">
        <description>
          The number of failed SSH login attempts since the SSH server instance
          was last activated.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="NumberOfSuccessfulAttempts" access="readOnly">
        <description>
          The total number of successful SSH login attempts since the device's
          last upgrade or initial boot.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="NumberOfSuccessfulAttemptsSinceActivation"
          access="readOnly">
        <description>
          The number of successful SSH login attempts since the SSH server
          instance was last activated.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.SSH.AuthorizedKey.{i}." access="readWrite"
        numEntriesParameter="AuthorizedKeyNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.16">
      <description>
        This object contains parameters relating to a SSH server instance.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.16">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="User" access="readWrite">
        <description>
          The user to whom the authorized key belongs to.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent=".Users.User."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Key" access="readWrite">
        <description>
          Public key used for authentication (OpenSSH format).
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.UnixDomainSockets." access="readOnly" minEntries="1"
        maxEntries="1" version="2.16">
      <description>
        This object contains information related to the Unix Domain Sockets
        used by USP Agent UDS MTP.
      </description>

      <parameter name="UnixDomainSocketNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.UnixDomainSockets.UnixDomainSocket.{i}."
        access="readOnly" numEntriesParameter="UnixDomainSocketNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.16">
      <description>
        This object contains parameters relating to a UnixDomainSocket
        configuration.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="Path"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.16">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Mode" access="readOnly">
        <description>
          Describes how the Unix Domain Socket must be used.
        </description>
        <syntax>
          <string>
            <enumeration value="Listen">
              <description>UNIX Domain Socket Server.</description>
            </enumeration>
            <enumeration value="Connect">
              <description>UNIX Domain Socket Client.</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="Path" access="readOnly">
        <description>
          File path of the Unix Domain Socket.

          Example: /tmp/broker_controller_path
        </description>
        <syntax>
          <string>
            <size maxLength="4096"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.USPServices." access="readOnly" minEntries="1"
        maxEntries="1" version="2.16">
      <description>
        This object contains information related to installed USP Services.
      </description>

      <parameter name="TrustNumberOfEntries" access="readOnly" version="2.19">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="USPServiceNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.USPServices.Trust.{i}." access="readWrite"
        numEntriesParameter="TrustNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.19">
      <description>
        This object contains permissions associated with the set of data model
        paths that a USP Agent within a USP Service is allowed to Register. If
        a USP Service's USP Agent is not present in this table then there are
        no permissions associated for that USP Service and it is not allowed to
        register any data model paths.
      </description>
      <uniqueKey functional="false">
        <parameter ref="EndpointID"/>
      </uniqueKey>

      <parameter name="EndpointID" access="readWrite">
        <description>
          The unique USP identifier for the USP Agent associated with these
          permissions.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="TargetPaths" access="readWrite">
        <description>
          Each entry in the list is an Object Path, Command Path, Event Path,
          or Parameter Path that determines the element(s) of the data model
          that the USP Service has permission to register. {{empty}} indicates
          that the USP Agent has no permissions.
        </description>
        <syntax>
          <list maxItems="1024"/>
          <string/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.USPServices.USPService.{i}." access="readOnly"
        numEntriesParameter="USPServiceNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.16">
      <description>
        This object contains parameters relating to a USPService configuration.
      </description>
      <uniqueKey functional="true">
        <parameter ref="EndpointID"/>
      </uniqueKey>

      <parameter name="EndpointID" access="readOnly">
        <description>
          The unique USP identifier for this USP Agent.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="Protocol" access="readOnly">
        <description>
          The Message Transfer Protocol (MTP) to be used for communications by
          a USP Endpoint. Note: This parameter was demoted to readOnly in the
          Device:2.17 version.
        </description>
        <syntax>
          <string>
            <enumeration value="WebSocket">
              <description>See {{bibref|RFC6455}}</description>
            </enumeration>
            <enumeration value="STOMP">
              <description>See {{bibref|STOMP1.2}}</description>
            </enumeration>
            <enumeration value="MQTT">
              <description>
                See {{bibref|MQTT311}} and {{bibref|MQTT50}}
              </description>
            </enumeration>
            <enumeration value="UDS">
              <description>See {{bibref|TR-369}}</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="DataModelPaths" access="readOnly">
        <description>
          Registered data model paths.
        </description>
        <syntax>
          <list minItems="1" maxItems="1024"/>
          <string/>
        </syntax>
      </parameter>

      <parameter name="DeploymentUnitRef" access="readOnly">
        <description>
          {{reference|the {{object|##.SoftwareModules.DeploymentUnit.}} object
          instance that this USP Service is part of.}}

          {{empty}} means that USP service doesn't have a corresponding
          software module.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong"
                targetParent="##.SoftwareModules.DeploymentUnit."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ExecutionUnitRef" access="readOnly" version="2.18">
        <description>
          {{reference|the {{object|##.SoftwareModules.ExecutionUnit.}} object
          instance that this USP Service is part of.}}

          {{empty}} means that USP service doesn't have a corresponding
          software module.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong"
                targetParent="##.SoftwareModules.ExecutionUnit."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="HasController" access="readOnly">
        <description>
          The USP service has controller functionality next to the standard USP
          Agent functionality.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Syslog." access="readOnly" version="2.17">
      <description>
        This object contains global parameters relating to the syslog
        implementations that is active in the Device. Based on
        {{bibref|YANGSYSLOG|A YANG Data Model for Syslog Configuration}}.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the Syslog service.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          Indicates the syslog service operational state.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled">
              <description>
                Indicates that the Syslog service is disabled.
              </description>
            </enumeration>
            <enumeration value="Enabled">
              <description>
                Indicates that the Syslog service is enabled.
              </description>
            </enumeration>
            <enumeration value="Error" optional="true">
              <description>
                Indicates that the Syslog service has encountered an error.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="FilterNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SourceNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="TemplateNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ActionNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Syslog.Filter.{i}." access="readWrite"
        numEntriesParameter="FilterNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.17">
      <description>
        This table defines the processing used to select log messages by
        comparing syslog message with the provided rules.

        A rule can consist either of {{param|FacilityLevel}} -
        {{param|Severity}} and or {{param|PatternMatch}}.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.17">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="FacilityLevel" access="readWrite">
        <description>
          Only the log messages with following Facility levels must be logged.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="Kern">
              <description>Kernel messages (0).</description>
            </enumeration>
            <enumeration value="User">
              <description>User-level messages (1).</description>
            </enumeration>
            <enumeration value="Mail">
              <description>Mail system messages (2).</description>
            </enumeration>
            <enumeration value="Daemon">
              <description>System daemons messages (3).</description>
            </enumeration>
            <enumeration value="Auth">
              <description>Security/authorization messages (4).</description>
            </enumeration>
            <enumeration value="Syslog">
              <description>
                Messages generated internally by syslogd (5).
              </description>
            </enumeration>
            <enumeration value="LPR">
              <description>Line printer subsystem messages (6).</description>
            </enumeration>
            <enumeration value="News">
              <description>Network news subsystem (7).</description>
            </enumeration>
            <enumeration value="UUCP">
              <description>UUCP subsystem messages (8).</description>
            </enumeration>
            <enumeration value="Cron">
              <description>Clock daemon messages (9).</description>
            </enumeration>
            <enumeration value="AuthPriv">
              <description>Security/authorization messages (10).</description>
            </enumeration>
            <enumeration value="FTP">
              <description>FTP daemon messages (11).</description>
            </enumeration>
            <enumeration value="NTP">
              <description>NTP subsystem messages (12).</description>
            </enumeration>
            <enumeration value="Audit">
              <description>Log audit messages (13).</description>
            </enumeration>
            <enumeration value="Console">
              <description>Log alert messages (14).</description>
            </enumeration>
            <enumeration value="Cron2">
              <description>Second clock daemon messages (15).</description>
            </enumeration>
            <enumeration value="Local0">
              <description>Local use 0 messages (16).</description>
            </enumeration>
            <enumeration value="Local1">
              <description>Local use 1 messages (17).</description>
            </enumeration>
            <enumeration value="Local2">
              <description>local use 2 messages (18).</description>
            </enumeration>
            <enumeration value="Local3">
              <description>local use 3 messages (19).</description>
            </enumeration>
            <enumeration value="Local4">
              <description>local use 4 messages (20).</description>
            </enumeration>
            <enumeration value="Local5">
              <description>local use 5 messages (21).</description>
            </enumeration>
            <enumeration value="Local6">
              <description>local use 6 messages (22).</description>
            </enumeration>
            <enumeration value="Local7">
              <description>local use 7 messages (23).</description>
            </enumeration>
            <enumeration value="All">
              <description>All facilities are selected.</description>
            </enumeration>
          </string>
          <default type="object" value="[All]"/>
        </syntax>
      </parameter>

      <parameter name="Severity" access="readWrite">
        <description>
          Specifies the Severity level filter rules.

          Defines the processing used to select log messages by comparing
          syslog message severity using the following processing rules: - if
          'none', do not match. - if 'all', match. - else compare message
          severity with the specified severity according to the default compare
          rule (all messages of the specified severity and greater match).

          This must be used inconjuction with {{param|SeverityCompare}} and
          {{param|SeverityCompareAction}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Emergency">
              <description>Indicates that the system is unusable.</description>
            </enumeration>
            <enumeration value="Alert">
              <description>
                Indicating that an action must be taken immediately.
              </description>
            </enumeration>
            <enumeration value="Critical">
              <description>Indicates a critical condition.</description>
            </enumeration>
            <enumeration value="Error">
              <description>Indicates a errors condition.</description>
            </enumeration>
            <enumeration value="Warning">
              <description>Indicates a warning condition.</description>
            </enumeration>
            <enumeration value="Notice">
              <description>
                Indicates a normal but important message.
              </description>
            </enumeration>
            <enumeration value="Info" version="2.19">
              <description>Indicates an informational message.</description>
            </enumeration>
            <enumeration value="Debug">
              <description>Indicates a debug-level message.</description>
            </enumeration>
            <enumeration value="All">
              <description>All severities are selected.</description>
            </enumeration>
            <enumeration value="None">
              <description>No filtering will be applied.</description>
            </enumeration>
          </string>
          <default type="object" value="All"/>
        </syntax>
      </parameter>

      <parameter name="SeverityCompare" access="readWrite">
        <description>
          Describes the comparison method that must be applied when a syslog
          message is received. Not applicable when severity
          {{enum|All|Severity}} and {{enum|None|Severity}} is configured.
        </description>
        <syntax>
          <string>
            <enumeration value="Equal">
              <description>
                Specifies that the severity comparison operation will be
                equals.
              </description>
            </enumeration>
            <enumeration value="EqualOrHigher">
              <description>
                Specifies that the severity comparison operation will be equals
                or higher."
              </description>
            </enumeration>
          </string>
          <default type="object" value="EqualOrHigher"/>
        </syntax>
      </parameter>

      <parameter name="SeverityCompareAction" access="readWrite">
        <description>
          Specifies the process of handling a syslog message based on specified
          conditions. It defines the action that will be taken when the
          criteria of both {{param|Severity}} and {{param|SeverityCompare}} are
          met, determining the response to the syslog message.
        </description>
        <syntax>
          <string>
            <enumeration value="Log">
              <description>
                When the selected comparison is true the syslog message will be
                logged.
              </description>
            </enumeration>
            <enumeration value="Block">
              <description>
                When the selected comparison is true the syslog message will
                not be logged.
              </description>
            </enumeration>
            <enumeration value="Stop">
              <description>
                When the select comparison is true the syslog message will not
                be logged and no further processing will occur."
              </description>
            </enumeration>
          </string>
          <default type="object" value="Log"/>
        </syntax>
      </parameter>

      <parameter name="PatternMatch" access="readWrite">
        <description>
          Regular expression pattern designed to match a syslog message that
          must be logged. The format is implementation specific.
        </description>
        <syntax>
          <string/>
          <default type="object" value=""/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Syslog.Source.{i}." access="readWrite"
        numEntriesParameter="SourceNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.17">
      <description>
        This table describes where and how the syslog service receives log
        messages.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.17">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="KernelMessages" access="readWrite">
        <description>
          This option enables the collection of kernel log messages that are
          specific to the Device.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="true"/>
        </syntax>
      </parameter>

      <parameter name="SystemMessages" access="readWrite">
        <description>
          This option enables the collection of the system log messages that
          are specific to the Device.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="true"/>
        </syntax>
      </parameter>

      <parameter name="Severity" access="readWrite">
        <description>
          Specifies the default Severity. When an incoming message lacks a
          valid syslog header, this parameter can be used to configure the
          required Severity level.
        </description>
        <syntax>
          <string>
            <enumeration value="Emergency">
              <description>Indicates that the system is unusable.</description>
            </enumeration>
            <enumeration value="Alert">
              <description>
                Indicating that an action must be taken immediately.
              </description>
            </enumeration>
            <enumeration value="Critical">
              <description>Indicates a critical condition.</description>
            </enumeration>
            <enumeration value="Error">
              <description>Indicates a errors condition.</description>
            </enumeration>
            <enumeration value="Warning">
              <description>Indicates a warning condition.</description>
            </enumeration>
            <enumeration value="Notice">
              <description>
                Indicates a normal but important message.
              </description>
            </enumeration>
            <enumeration value="Info" version="2.19">
              <description>Indicates an informational message.</description>
            </enumeration>
            <enumeration value="Debug">
              <description>Indicates a debug-level message.</description>
            </enumeration>
            <enumeration value="All">
              <description>All severities are selected.</description>
            </enumeration>
            <enumeration value="None">
              <description>No filtering will be applied.</description>
            </enumeration>
          </string>
          <default type="object" value="All"/>
        </syntax>
      </parameter>

      <parameter name="FacilityLevel" access="readWrite">
        <description>
          Specifies the default Facility Level. When an incoming message lacks
          a valid syslog header, this parameter can be used to configure the
          required Facility level.
        </description>
        <syntax>
          <string>
            <enumeration value="Kern">
              <description>Kernel messages (0).</description>
            </enumeration>
            <enumeration value="User">
              <description>User-level messages (1).</description>
            </enumeration>
            <enumeration value="Mail">
              <description>Mail system messages (2).</description>
            </enumeration>
            <enumeration value="Daemon">
              <description>System daemons messages (3).</description>
            </enumeration>
            <enumeration value="Auth">
              <description>Security/authorization messages (4).</description>
            </enumeration>
            <enumeration value="Syslog">
              <description>
                Messages generated internally by syslogd (5).
              </description>
            </enumeration>
            <enumeration value="LPR">
              <description>Line printer subsystem messages (6).</description>
            </enumeration>
            <enumeration value="News">
              <description>Network news subsystem (7).</description>
            </enumeration>
            <enumeration value="UUCP">
              <description>UUCP subsystem messages (8).</description>
            </enumeration>
            <enumeration value="Cron">
              <description>Clock daemon messages (9).</description>
            </enumeration>
            <enumeration value="AuthPriv">
              <description>Security/authorization messages (10).</description>
            </enumeration>
            <enumeration value="FTP">
              <description>FTP daemon messages (11).</description>
            </enumeration>
            <enumeration value="NTP">
              <description>NTP subsystem messages (12).</description>
            </enumeration>
            <enumeration value="Audit">
              <description>Log audit messages (13).</description>
            </enumeration>
            <enumeration value="Console">
              <description>Log alert messages (14).</description>
            </enumeration>
            <enumeration value="Cron2">
              <description>Second clock daemon messages (15).</description>
            </enumeration>
            <enumeration value="Local0">
              <description>Local use 0 messages (16).</description>
            </enumeration>
            <enumeration value="Local1">
              <description>Local use 1 messages (17).</description>
            </enumeration>
            <enumeration value="Local2">
              <description>local use 2 messages (18).</description>
            </enumeration>
            <enumeration value="Local3">
              <description>local use 3 messages (19).</description>
            </enumeration>
            <enumeration value="Local4">
              <description>local use 4 messages (20).</description>
            </enumeration>
            <enumeration value="Local5">
              <description>local use 5 messages (21).</description>
            </enumeration>
            <enumeration value="Local6">
              <description>local use 6 messages (22).</description>
            </enumeration>
            <enumeration value="Local7">
              <description>local use 7 messages (23).</description>
            </enumeration>
            <enumeration value="All">
              <description>All facilities are selected.</description>
            </enumeration>
          </string>
          <default type="object" value="All"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Syslog.Source.{i}.Network." access="readOnly"
        version="2.17">
      <description>
        This object describes the configuration parameters for receiving syslog
        information on a network socket.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the functionality to receive syslog information
          on a network socket.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite">
        <description>
          The IP or Logical Interface on which the syslog information will be
          received. When {{empty}} is specified the syslog service will listen
          to all available network interfaces. Example:

          * ''Device.IP.Interface.1''

          * ''Device.Logical.Interface.1''

          {{template|INTERFACE-ROUTING}}
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Port" access="readWrite">
        <description>
          Specifies the port number on which the syslog information will be
          received.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="65535"/>
          </unsignedInt>
          <default type="object" value="1099"/>
        </syntax>
      </parameter>

      <parameter name="Protocol" access="readWrite">
        <description>
          The protocol to be used for receiving syslog information.
        </description>
        <syntax>
          <string>
            <enumeration value="TCP">
              <description>
                {{bibref|RFC6587|Transmission of Syslog Messages over TCP}}.
              </description>
            </enumeration>
            <enumeration value="UDP">
              <description>
                {{bibref|RFC5426|Transmission of Syslog Messages over UDP}}.
              </description>
            </enumeration>
            <enumeration value="TLS">
              <description>
                {{bibref|RFC5425|Transport Layer Security (TLS) Transport
                Mapping for Syslog}}.
              </description>
            </enumeration>
          </string>
          <default type="object" value="UDP"/>
        </syntax>
      </parameter>

      <parameter name="Certificate" access="readWrite" version="2.19">
        <description>
          Specifies the server certificate to be presented by the server during
          the TLS handshake. This certificate is used to authenticate the
          server to remote clients, ensuring that the clients are connecting to
          a legitimate server. The server certificate must be issued by a
          trusted Certificate Authority (CA) and should match the server's
          private key. This parameter is applicable only when a TLS session is
          being used.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent=".Security.Certificate."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="CABundle" access="readWrite" version="2.19">
        <description>
          Specifies the group of CA certificate(s) that the server must use to
          validate the certificate presented by the remote client. These CA
          certificates form a trust chain that the client certificate must
          match, ensuring that only clients with trusted certificates can
          establish a connection. This parameter supports multiple CA
          certificates to accommodate different client certificate issuers.
          This parameter is applicable only when a TLS session is being used.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent=".Security.CABundle."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="PeerVerify" access="readWrite" version="2.19">
        <description>
          Ensures authentic and secure connections by validating entity
          credentials such as certificates or tokens. Only applicable when
          {{param|Protocol}} is set to {{enum|TLS|Protocol}}.

          In order to validate a certificate, the entire certificate chain,
          including the CA certificate, must be valid. If any certificate in
          the chain is found to be invalid, the syslog service must reject the
          connection.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Syslog.Template.{i}." access="readWrite"
        numEntriesParameter="TemplateNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.17">
      <description>
        This table the describes the templates that can be referenced by
        objects that can use the template syntax. With templates, you have the
        flexibility to establish uniform message formats or even define
        standard filenames for different objects.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.17">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Expression" access="readWrite">
        <description>
          Describes the template syntax used for transforming the syslog
          message. The format is implementation specific and can consist of
          strings, macros, and template functions.
        </description>
        <syntax>
          <string/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="EscapeMessage" access="readWrite">
        <description>
          Enabling this option will cause the following characters to be
          escaped ', " and \. in the syslog message.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Syslog.Action.{i}." access="readWrite"
        numEntriesParameter="ActionNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.17">
      <description>
        This object describes the log action parameters for syslog.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.17">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="SourceRef" access="readWrite">
        <description>
          Mandatory parameter. Specifies one or multiple sources from where the
          log messages originate.
        </description>
        <syntax>
          <list/>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="#.Source."
                targetType="row"/>
          </string>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>

      <parameter name="FilterRef" access="readWrite">
        <description>
          The Filter associated with the {{object}} entry.

          When referencing multiple Filter rules, it is mandatory to execute
          them in the order listed within the parameter.

          Example: FilterRef=.Syslog.Filter.3,.Syslog.Filter.1 First filter
          rule 3 must be executed and then filter rule 1.

          When no Filter is specified the log message will not be filtered.
        </description>
        <syntax>
          <list/>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="#.Filter."
                targetType="row"/>
          </string>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>

      <parameter name="TemplateRef" access="readWrite">
        <description>
          The Template associated with the {{object}} entry.

          When no Template is specified the log message will not be altered by
          the template system.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="#.Template."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="StructuredData" access="readWrite">
        <description>
          This feature represents the ability to log messages in
          structured-data format. Reference {{bibref|RFC5424|The Syslog
          Protocol}}.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Syslog.Action.{i}.LogFile." access="readOnly"
        version="2.17">
      <description>
        This object describes the configuration parameters for file logging. If
        file-archive limits are not supplied, it is assumed that the local
        implementation defined limits will be used.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the LogFile functionality.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="VendorLogFileRef" access="readOnly">
        <description>
          The reference to {{object|###.DeviceInfo.VendorLogFile}} is
          automatically constructed and the
          {{object|###.DeviceInfo.VendorLogFile}} is populated with the
          information based on {{param|FilePath}}.

          E.g. When {{param|FilePath}} = ''file:///var/log/messages''. The
          following entry is automatically added to
          {{object|###.DeviceInfo.VendorLogFile}}:
          ''file:///var/log/messages''.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong"
                targetParent=".DeviceInfo.VendorLogFile." targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="FilePath" access="readWrite">
        <description>
          Destination path and filename of where to create and keep the
          logfiles. Which MUST use the uri scheme file {{bibref|RFC8089|The
          file URI Scheme}}.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Syslog.Action.{i}.LogRemote." access="readOnly"
        version="2.17">
      <description>
        This object describes the configuration parameters for forwarding
        syslog messages to remote relays or collectors.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the LogRemote functionality.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly" version="2.19">
        <description>
          Status of the remote log destination.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled">
              <description>
                Indicates that the Syslog remote destination is disabled.
              </description>
            </enumeration>
            <enumeration value="Enabled">
              <description>
                Indicates that the Syslog remote destination is enabled.
              </description>
            </enumeration>
            <enumeration value="Error_Unreachable">
              <description>
                Indicate that the Syslog remote destination is unreachable.
              </description>
            </enumeration>
            <enumeration value="Error" optional="true">
              <description>
                Indicates that the Syslog remote destination is misconfigured
                or has encountered an error.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="Address" access="readWrite">
        <description>
          Host name or IP address of the remote server.
        </description>
        <syntax>
          <string/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Protocol" access="readWrite">
        <description>
          Protocol to be used to deliver the syslog messages to the remote
          server.

          Note: This parameter was promoted to readWrite in the Device:2.18
          version.
        </description>
        <syntax>
          <string>
            <enumeration value="TCP">
              <description>
                {{bibref|RFC6587|Transmission of Syslog Messages over TCP}}.
              </description>
            </enumeration>
            <enumeration value="UDP">
              <description>
                {{bibref|RFC5426|Transmission of Syslog Messages over UDP}}.
              </description>
            </enumeration>
            <enumeration value="TLS">
              <description>
                {{bibref|RFC5425|Transport Layer Security (TLS) Transport
                Mapping for Syslog}}.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="Port" access="readWrite">
        <description>
          Port number of the remote server.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="65535"/>
          </unsignedInt>
          <default type="object" value="514"/>
        </syntax>
      </parameter>

      <parameter name="Certificate" access="readWrite" version="2.17">
        <description>
          Specifies the client certificate that must be presented to the remote
          server for mutual authentication. This certificate is used to
          authenticate the client by the remote server, ensuring that the
          remote server is communicating with a trusted client. The client
          certificate must be issued by a trusted Certificate Authority (CA)
          and should match the client's private key. This parameter is
          applicable only when a TLS session is being used.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent=".Security.Certificate."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="CABundle" access="readWrite" version="2.19">
        <description>
          Specifies the group of CA certificate(s) that the client must use to
          validate the certificate presented by the remote server. These CA
          certificates form a trust chain that the server certificate must
          match, ensuring that only servers with trusted certificates can
          establish a connection. This parameter supports multiple CA
          certificates to accommodate different server certificate issuers.
          This parameter is applicable only when a TLS session is being used.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent=".Security.CABundle."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="PeerVerify" access="readWrite">
        <description>
          Ensures authentic and secure connections by validating entity
          credentials such as certificates or tokens. Only applicable when
          {{param|Protocol}} is set to {{enum|TLS|Protocol}}.

          In order to validate a certificate, the entire certificate chain,
          including the CA certificate, must be valid. If any certificate in
          the chain is found to be invalid, the syslog service must reject the
          connection.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Schedules." access="readOnly" version="2.18">
      <description>
        This object is responsible for managing the schedules that are embedded
        within the Device.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the scheduling. If the scheduling is disabled
          then the status of any enabled {{object|Schedule}} entries will
          change to {{enum|StackDisabled|Schedule.{i}.Status}}.
        </description>
        <syntax>
          <boolean/>
          <default type="implementation" value="true"/>
        </syntax>
      </parameter>

      <parameter name="ScheduleNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Schedules.Schedule.{i}." access="readWrite"
        numEntriesParameter="ScheduleNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.18">
      <description>
        Each instance of this object provides a schedule where access is
        enabled.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.18">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables this {{object}} entry.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          Status of the schedule.
        </description>
        <syntax>
          <string>
            <enumeration value="Active"/>
            <enumeration value="Inactive"/>
            <enumeration value="StackDisabled">
              <description>
                When the global {{param|#.Enable}} is {{false}} and the
                {{param|Enable}} parameter is {{true}}, the scheduling is
                disabled and the status of the enabled {{object}} entry must
                change to {{enum|StackDisabled|Status}}. The value of the
                {{param|Enable}} parameter is not changed.
              </description>
            </enumeration>
            <enumeration value="Error" optional="true"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Description" access="readWrite">
        <description>
          A description of the schedule (human readable string).
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Day" access="readWrite">
        <description>
          {{list|the days for which access is enabled}} {{enum}}
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="Monday"/>
            <enumeration value="Tuesday"/>
            <enumeration value="Wednesday"/>
            <enumeration value="Thursday"/>
            <enumeration value="Friday"/>
            <enumeration value="Saturday"/>
            <enumeration value="Sunday"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="StartTime" access="readWrite">
        <description>
          Start time of the enable schedule in hh:mm format. [hh] refers to a
          zero-padded hour between 00 and 23. [mm] refers to a zero-padded
          minute between 00 and 59.

          Start time is in local time zone.
        </description>
        <syntax>
          <string>
            <size maxLength="5"/>
            <pattern value=""/>
            <pattern value="([01][0-9]|2[0-3]):[0-5][0-9]"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Duration" access="readWrite">
        <description>
          The duration, in {{units}}, which the access is enabled.

          If the {{param|StartTime}} is not defined, duration is the total time
          access is allowed during a calendar day.

          If a {{param|StartTime}} is defined, access is allowed for the
          {{param}} period starting from {{param|StartTime}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="InverseMode" access="readWrite">
        <description>
          When enabled, the Inverse Mode reverses the default behavior of the
          schedule, creating a dynamic where actions that are typically
          activated are now deactivated, and vice versa.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="TimeLeft" access="readOnly" activeNotify="canDeny">
        <description>
          The number of {{units}} remaining before the next state change will
          occur. ''0'' means that schedule is disabled.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.RadSecProxy." version="2.19">
      <description>
        This object contains configurations pertaining to the RadSecProxy
        service which implements the RadSec protocol for transporting RADIUS
        datagrams over TCP and TLS as detailed in {{bibref|RFC6614|Appendix
        B}}.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the RadSecProxy service.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          Status of the RadSecProxy service. {{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="ListenConfigNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SourceConfigNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ClientNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="RealmNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ServerNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="TLSNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.RadSecProxy.ListenConfig.{i}." access="readOnly"
        numEntriesParameter="ListenConfigNumberOfEntries" minEntries="1"
        maxEntries="unbounded" version="2.19">
      <description>
        Specifies the Listen configurations of the RadSecProxy service for each
        type of {{param|Protocol}}.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.19">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Protocol" access="readWrite">
        <description>
          Specifies the listening protocol.
        </description>
        <syntax>
          <string>
            <enumeration value="UDP"/>
            <enumeration value="TCP"/>
            <enumeration value="TLS"/>
            <enumeration value="DTLS"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite">
        <description>
          The IP interface on which the RadSecProxy service listen for the
          corresponding {{param|Protocol}}.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent=".IP.Interface."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Port" access="readWrite">
        <description>
          Specifies the port used to receive corresponding {{param|Protocol}}
          packets. UDP {{param|Protocol}} will default to port 1812 and TCP and
          TLS {{param|Protocol}} will default to 2083.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.RadSecProxy.SourceConfig.{i}." access="readOnly"
        numEntriesParameter="SourceConfigNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.19">
      <description>
        Specifies the source configurations of the RadSecProxy service which is
        used for connecting to servers in order to send messages for each type
        of {{param|Protocol}}.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.19">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Protocol" access="readWrite">
        <description>
          Specifies the source Protocol of the RadSecProxy service.
        </description>
        <syntax>
          <string>
            <enumeration value="UDP"/>
            <enumeration value="TCP"/>
            <enumeration value="TLS"/>
            <enumeration value="DTLS"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite">
        <description>
          The IP interface which the RadSecProxy service uses as the source for
          the corresponding {{param|Protocol}}.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent=".IP.Interface."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Port" access="readWrite">
        <description>
          Specifies the port used to receive corresponding {{param|Protocol}}
          packets. UDP {{param|Protocol}} will default to port 1812 and TCP and
          TLS {{param|Protocol}} will default to 2083.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.RadSecProxy.Realm.{i}." access="readWrite"
        numEntriesParameter="RealmNumberOfEntries" enableParameter="Enable"
        minEntries="1" maxEntries="unbounded" version="2.19">
      <description>
        Realm block configuration of the RadSecProxy service as defined in
        {{bibref|RFC6614|Appendix B}}.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="Pattern"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enable or disable this {{object}} instance.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The status of this entry. {{enum}}

          The {{enum|Error}} value MAY be used by the CPE to indicate a locally
          defined error condition.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Enabled"/>
            <enumeration value="Error" optional="true"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Alias" access="readWrite" version="2.19">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Pattern" access="readWrite">
        <description>
          Specifies the regular expression pattern against which the Username
          attribute in the Access-Request is matched to determine the
          corresponding Realm block. This is used to determine the
          {{param|Server}} to which the Access-Request should be forwarded. The
          format is implementation specific.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="Server" access="readWrite">
        <description>
          Specifies the server to which requests for this realm should be
          forwarded. If no server is configured, the RadSecProxy service will
          deny all Access-Requests for this realm.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="#.Server."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="AccountingServer" access="readWrite">
        <description>
          Specifies the accounting Server. If no accounting Server is
          configured, the RadSecProxy service will silently ignore all
          Accounting-Requests for this realm unless
          {{param|AccountingResponse}} is set to {{true}}.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="#.Server."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="AccountingResponse" access="readWrite">
        <description>
          Enable sending Accounting-Response instead of ignoring
          Accounting-Requests when no accounting servers are configured.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.RadSecProxy.Server.{i}." access="readWrite"
        numEntriesParameter="ServerNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.19">
      <description>
        Server block configuration of the RadSecProxy service.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="Address"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enable or disable this {{object}} instance.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The status of this entry. {{enum}}

          The {{enum|Error}} value MAY be used by the CPE to indicate a locally
          defined error condition.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Enabled"/>
            <enumeration value="Error" optional="true"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Alias" access="readWrite" version="2.19">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Address" access="readWrite">
        <description>
          Specifies the Fully Qualified Domain Name (FQDN) or IP address of the
          RADIUS server that the RadSecProxy service communicates with.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Protocol" access="readWrite">
        <description>
          Specifies the type (protocol) of the Server.
        </description>
        <syntax>
          <string>
            <enumeration value="UDP"/>
            <enumeration value="TCP"/>
            <enumeration value="TLS"/>
            <enumeration value="DTLS"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Port" access="readWrite">
        <description>
          Specifies the port (UDP/TCP) to connect to. If omitted, UDP and TCP
          will default to 1812 while TLS and DTLS {{bibref|RFC9147}} will
          default to 2083.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Secret" access="readWrite">
        <description>
          Specifies the shared RADIUS key with the client. This option is
          optional for TLS/DTLS and if omitted will default to "radsec". Note
          that using a secret other than "radsec" for TLS is a violation of the
          standard {{bibref|RFC6614}} and that the proposed standard for DTLS
          {{bibref|RFC9147}} stipulates that the secret must be "radius/dtls".
        </description>
        <syntax secured="true">
          <string/>
        </syntax>
      </parameter>

      <parameter name="TLS" access="readWrite">
        <description>
          Specifies the TLS Block to be used for this server.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="#.TLS." targetType="row"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.RadSecProxy.Client.{i}." access="readWrite"
        numEntriesParameter="ClientNumberOfEntries" enableParameter="Enable"
        minEntries="1" maxEntries="unbounded" version="2.19">
      <description>
        Client block configuration of the RadSecProxy service.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="Address"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enable or disable this {{object}} instance.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The status of this entry. {{enum}}

          The {{enum|Error}} value MAY be used by the CPE to indicate a locally
          defined error condition.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Enabled"/>
            <enumeration value="Error" optional="true"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Alias" access="readWrite" version="2.19">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Address" access="readWrite">
        <description>
          Specifies the Fully Qualified Domain Name (FQDN) or IP address of
          RADIUS client that the RadSecProxy service communicates with.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Protocol" access="readWrite">
        <description>
          Specifies the type (protocol) of the Client.
        </description>
        <syntax>
          <string>
            <enumeration value="UDP"/>
            <enumeration value="TCP"/>
            <enumeration value="TLS"/>
            <enumeration value="DTLS"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Secret" access="readWrite">
        <description>
          Specifies the shared RADIUS key with the server. This option is
          optional for TLS/DTLS and if omitted will default to "radsec". Note
          that using a secret other than "radsec" for TLS is a violation of the
          standard {{bibref|RFC6614}} and that the proposed standard for DTLS
          stipulates that the secret must be "radius/dtls".
        </description>
        <syntax secured="true">
          <string/>
        </syntax>
      </parameter>

      <parameter name="TLS" access="readWrite">
        <description>
          Specifies the TLS Block to be used by this client.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="#.TLS." targetType="row"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.RadSecProxy.TLS.{i}." access="readWrite"
        numEntriesParameter="TLSNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.19">
      <description>
        TLS block configuration of the RadSecProxy service.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.19">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Certificate" access="readWrite" version="2.19">
        <description>
          Specifies the client certificate that must be presented to the remote
          server for mutual authentication. This certificate is used to
          authenticate the client by the remote server, ensuring that the
          remote server is communicating with a trusted client. The client
          certificate must be issued by a trusted Certificate Authority (CA)
          and should match the client's private key. This parameter is
          applicable only when a TLS session is being used.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent=".Security.Certificate."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="CABundle" access="readWrite" version="2.19">
        <description>
          Specifies the group of CA certificate(s) that the client must use to
          validate the certificate presented by the remote server. These CA
          certificates form a trust chain that the server certificate must
          match, ensuring that only servers with trusted certificates can
          establish a connection. This parameter supports multiple CA
          certificates to accommodate different server certificate issuers.
          This parameter is applicable only when a TLS session is being used.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent=".Security.CABundle."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="TLSVersion" access="readWrite">
        <description>
          Specifies the TLS/DTLS protocol version to be used by the RadSecProxy
          service.
        </description>
        <syntax>
          <string>
            <enumeration value="SSL3">
              <description>
                Support Secure Socket Layer version 3 (SSLv3).
              </description>
            </enumeration>
            <enumeration value="TLS1_Only">
              <description>
                Support Transport Layer Security version 1.0 only.
              </description>
            </enumeration>
            <enumeration value="TLS1_Or_Later">
              <description>
                Support Transport Layer Security version 1.0 or later version.
              </description>
            </enumeration>
            <enumeration value="TLS1_1_Only">
              <description>
                Support Transport Layer Security version 1.1 only.
              </description>
            </enumeration>
            <enumeration value="TLS1_1_Or_Later">
              <description>
                Support Transport Layer Security version 1.1 or later versions.
              </description>
            </enumeration>
            <enumeration value="TLS1_2_Only">
              <description>
                Support Transport Layer Security version 1.2 only.
              </description>
            </enumeration>
            <enumeration value="TLS1_2_Or_Later">
              <description>
                Support Transport Layer Security version 1.2 or later version.
              </description>
            </enumeration>
            <enumeration value="TLS1_3_Only">
              <description>
                Support Transport Layer Security version 1.3 only.
              </description>
            </enumeration>
            <enumeration value="TLS1_3_Or_Later">
              <description>
                Support Transport Layer Security version 1.3 or later version.
              </description>
            </enumeration>
            <enumeration value="DTLS1_Only">
              <description>
                Support Datagram Transport Layer Security version 1.0 only.
              </description>
            </enumeration>
            <enumeration value="DTLS1_Or_Later">
              <description>
                Support Datagram Transport Layer Security version 1.0 or later
                version.
              </description>
            </enumeration>
            <enumeration value="DTLS1_2_Only">
              <description>
                Support Datagram Transport Layer Security version 1.2 only.
              </description>
            </enumeration>
            <enumeration value="DTLS1_2_Or_Later">
              <description>
                Support Datagram Transport Layer Security version 1.2 or later
                version.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.SessionManagement." access="readOnly" minEntries="1"
        maxEntries="1" version="2.19">
      <description>
        The logical connection between an RG and a data network using 3GPP
        technologies (FN-RG cellular and 5G-RG ALL) are considered data
        sessions. The Device.SessionManagement subtree describes each sessions
        properties together with the QoS rules specific to that access
        technology.
      </description>

      <parameter name="SessionNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PDPNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PDNNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PDUNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.SessionManagement.Session.{i}." access="readOnly"
        numEntriesParameter="SessionNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.19">
      <description>
        Contains all the properties of a 3GPP session instance common to all
        generations. This object contains the {{object}} table.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="SessionID"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.19">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readOnly">
        <description>
          {{reference}} The IP Interface associated with the ''Session'' entry.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="##.IP.Interface."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SessionID" access="readOnly">
        <description>
          3GPP session identity. For 3G and 4G, this will be the cid as defined
          in TS27.007 10.1.1. For 5G see {{bibref|3GPP-TS.24.501|Clause 9.4}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="15"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SessionType" access="readOnly">
        <description>
          The data session type indicating the protocol the session is capable
          of carrying. See {{bibref|3GPP-TS.24.501|Clause 9.11.4.11}}. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="IPv4"/>
            <enumeration value="IPv6"/>
            <enumeration value="IPv4v6"/>
            <enumeration value="Unstructured"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="APN" access="readOnly">
        <description>
          The Access Point Name terminating the data session. For 3G and 4G it
          will be an APN, whilst 5G uses DNN. For all 3GPP generations, the APN
          can be specified at the time of session establishment or assigned by
          the network based on subscription. The format is defined in
          {{bibref|3GPP-TS.24.501|clause 9.11.2.1A}}.
        </description>
        <syntax>
          <string>
            <size maxLength="100"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Reference" access="readOnly">
        <description>
          Indicates the data session type.

          When the {{param}} is {{empty}} the data session is unknown.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef
                refType="strong"
                targetParent="
                  #.PDP.
                  #.PDN.
                  #.PDU."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.SessionManagement.Session.{i}.PCO." access="readOnly"
        minEntries="1" maxEntries="1" version="2.19">
      <description>
        Policy Configuration Options (PCO) is an optional set of configuration
        parameters supplied by the network as defined in
        {{bibref|3GPP-TS.24.008|clause 10.5.6.3}}.
      </description>

      <parameter name="IPv6PCSCF" access="readOnly">
        <description>
          The IPv6 address of the P-CSCF used for VoLTE telephony.
        </description>
        <syntax>
          <dataType ref="IPv6Address"/>
        </syntax>
      </parameter>

      <parameter name="IPv6DNS" access="readOnly">
        <description>
          Each entry is an IPv6 DNS server.
        </description>
        <syntax>
          <list/>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="IPv4PCSCF" access="readOnly">
        <description>
          The IPv4 address of the P-CSCF used for VoLTE telephony.
        </description>
        <syntax>
          <dataType ref="IPv4Address"/>
        </syntax>
      </parameter>

      <parameter name="IPv4DNS" access="readOnly">
        <description>
          Each entry is an IPv4 DNS server.
        </description>
        <syntax>
          <list/>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.SessionManagement.PDP.{i}." access="readOnly"
        numEntriesParameter="PDPNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.19">
      <description>
        Contains all 3G specific attributes needed to establish a PDP Context.
        See {{bibref|3GPP-TS.24.008|Clause 10.5.6.5}}
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.19">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="TrafficClass" access="readOnly">
        <description>
          Indicates the type of application for which the PDP session is
          optimised. See {{bibref|3GPP-TS.24.008|Clause 10.5.6.5}}. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="Conversational"/>
            <enumeration value="Streaming"/>
            <enumeration value="Interactive"/>
            <enumeration value="Background"/>
            <enumeration value="SubscribedValue"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="UpstreamMaxBitRate" access="readOnly">
        <description>
          Upstream Maximum Bit Rate in {{units}}. See
          {{bibref|3GPP-TS.24.008|Clause 10.5.6.5}}.
        </description>
        <syntax>
          <unsignedLong>
            <units value="Kbps"/>
          </unsignedLong>
        </syntax>
      </parameter>

      <parameter name="DownstreamMaxBitRate" access="readOnly">
        <description>
          Downstream Maximum Bit Rate in {{units}}. See
          {{bibref|3GPP-TS.24.008|Clause 10.5.6.5}}.
        </description>
        <syntax>
          <unsignedLong>
            <units value="Kbps"/>
          </unsignedLong>
        </syntax>
      </parameter>

      <parameter name="UpstreamGuaranteedBitRate" access="readOnly">
        <description>
          Upstream Guaranteed Bit Rate in {{units}}. See
          {{bibref|3GPP-TS.24.008|Clause 10.5.6.5}}.
        </description>
        <syntax>
          <unsignedLong>
            <units value="Kbps"/>
          </unsignedLong>
        </syntax>
      </parameter>

      <parameter name="DownstreamGuaranteedBitRate" access="readOnly">
        <description>
          Downstream Guaranteed Bit Rate in {{units}}. See
          {{bibref|3GPP-TS.24.008|Clause 10.5.6.5}}.
        </description>
        <syntax>
          <unsignedLong>
            <units value="Kbps"/>
          </unsignedLong>
        </syntax>
      </parameter>

      <parameter name="DeliveryOrder" access="readOnly">
        <description>
          Indicates whether the PDP session shall provide in-sequence SDU
          delivery or not. See {{bibref|3GPP-TS.24.008|Clause 10.5.6.5}}.
          {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="No"/>
            <enumeration value="Yes"/>
            <enumeration value="SubscribedValue"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="MaximumSDUSize" access="readOnly">
        <description>
          Indicates the maximum allowed SDU size in octets. See
          {{bibref|3GPP-TS.24.008|Clause 10.5.6.5}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SDUErrorRatio" access="readOnly">
        <description>
          Indicates the target value for the fraction of SDUs lost or detected
          as erroneous. SDUs. SDU error ratio is defined only for conforming
          traffic. The value is specified as "mEe". As an example a target
          residual bit error ratio of 5•10-3 would be specified as "5E3", "0E0"
          means subscribed value See {{bibref|3GPP-TS.24.008|Clause 10.5.6.5}}.
        </description>
        <syntax>
          <string>
            <size maxLength="10"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ResidualBitErrorRatio" access="readOnly">
        <description>
          Indicates the target value for the undetected bit error ratio in the
          delivered SDUs. If no error detection is requested, Residual bit
          error ratio indicates the bit error ratio in the delivered SDUs. The
          value is specified as "mEe". As an example a target residual bit
          error ratio of 5•10-3 would be specified as "5E3" "0E0" means
          subscribed value See {{bibref|3GPP-TS.24.008|Clause 10.5.6.5}}.
        </description>
        <syntax>
          <string>
            <size maxLength="10"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="DeliveryOfErroneousSDUs" access="readOnly">
        <description>
          Indicates whether SDUs detected as erroneous shall be delivered or
          not. See {{bibref|3GPP-TS.24.008|Clause 10.5.6.5}}. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="No"/>
            <enumeration value="Yes"/>
            <enumeration value="NoDetect"/>
            <enumeration value="SubscribedValue"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="TransferDelay" access="readOnly">
        <description>
          indicates the targeted time between request to transfer an SDU at one
          SAP to its delivery at the other SAP, in {{units}}. See
          {{bibref|3GPP-TS.24.008|Clause 10.5.6.5}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="Milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.SessionManagement.PDN.{i}." access="readOnly"
        numEntriesParameter="PDNNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.19">
      <description>
        Contains all 4G specific attributes needed to establish a PDN session.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.19">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="QCI" access="readOnly">
        <description>
          QoS Class Identifier. See {{bibref|3GPP-TS.24.301|Clause 9.9.4.3}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="254"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="UpstreamMaxBitRate" access="readOnly">
        <description>
          Upstream Maximum Bit Rate in {{units}}. See
          {{bibref|3GPP-TS.24.301|Clause 9.9.4.3}}.
        </description>
        <syntax>
          <unsignedLong>
            <units value="Kbps"/>
          </unsignedLong>
        </syntax>
      </parameter>

      <parameter name="DownstreamMaxBitRate" access="readOnly">
        <description>
          Downstream Maximum Bit Rate in {{units}}. See
          {{bibref|3GPP-TS.24.301|Clause 9.9.4.3}}.
        </description>
        <syntax>
          <unsignedLong>
            <units value="Kbps"/>
          </unsignedLong>
        </syntax>
      </parameter>

      <parameter name="UpstreamGuaranteedBitRate" access="readOnly">
        <description>
          Upstream Guaranteed Bit Rate in {{units}}. See
          {{bibref|3GPP-TS.24.301|Clause 9.9.4.3}}.
        </description>
        <syntax>
          <unsignedLong>
            <units value="Kbps"/>
          </unsignedLong>
        </syntax>
      </parameter>

      <parameter name="DownstreamGuaranteedBitRate" access="readOnly">
        <description>
          Downstream Guaranteed Bit Rate in {{units}}. See
          {{bibref|3GPP-TS.24.301|Clause 9.9.4.3}}.
        </description>
        <syntax>
          <unsignedLong>
            <units value="Kbps"/>
          </unsignedLong>
        </syntax>
      </parameter>

      <parameter name="UpstreamAggregateBitRate" access="readOnly">
        <description>
          Upstream Aggregate Bit Rate in {{units}}. See
          {{bibref|3GPP-TS.24.301|Clause 9.9.4.3}}.
        </description>
        <syntax>
          <unsignedLong>
            <units value="Kbps"/>
          </unsignedLong>
        </syntax>
      </parameter>

      <parameter name="DownstreamAggregateBitRate" access="readOnly">
        <description>
          Downstream Aggregate Bit Rate in {{units}}. See
          {{bibref|3GPP-TS.24.301|Clause 9.9.4.3}}.
        </description>
        <syntax>
          <unsignedLong>
            <units value="Kbps"/>
          </unsignedLong>
        </syntax>
      </parameter>
    </object>

    <object name="Device.SessionManagement.PDU.{i}." access="readOnly"
        numEntriesParameter="PDUNumberOfEntries" minEntries="0"
        maxEntries="unbounded" version="2.19">
      <description>
        Contains all 5G specific attributes needed to establish a PDU session.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.19">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="PTI" access="readOnly">
        <description>
          Procedure transaction identity. See {{bibref|3GPP-TS.24.501|Clause
          9.6}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="254"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SSC" access="readOnly">
        <description>
          Session and Service Continuity (SSC) Mode: Indicates that the traffic
          of the matching application shall be routed via a PDU Session
          supporting the included SSC Mode. See {{bibref|3GPP-TS.24.501|Clause
          9.11.4.16}}
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="3"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SessionAMBRDownlink" access="readOnly">
        <description>
          Downlink Aggregate Maximum Bit Rate in {{units}}. See
          {{bibref|3GPP-TS.24.501|Clause 9.11.4.14}}.
        </description>
        <syntax>
          <unsignedLong>
            <units value="bits per second"/>
          </unsignedLong>
        </syntax>
      </parameter>

      <parameter name="SessionAMBRUplink" access="readOnly">
        <description>
          Uplink Aggregate Maximum Bit Rate in {{units}}. See
          {{bibref|3GPP-TS.24.501|Clause 9.11.4.14}}.
        </description>
        <syntax>
          <unsignedLong>
            <units value="bits per second"/>
          </unsignedLong>
        </syntax>
      </parameter>

      <parameter name="RQTimerValue" access="readOnly">
        <description>
          Reflective QoS timeout in {{units}}. See
          {{bibref|3GPP-TS.24.501|Clause 9.11.2.3}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="AlwaysOn" access="readOnly">
        <description>
          Always on PDU session indication. The purpose of the Always-on PDU
          session indication information element is to indicate whether a PDU
          session is established as an always-on PDU session.

          See {{bibref|3GPP-TS.24.501|clause 9.11.4.3}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="QoSRuleNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="QoSFlowNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.SessionManagement.PDU.{i}.NetworkSlice."
        access="readOnly" minEntries="1" maxEntries="1" version="2.19">
      <description>
        Describes a S-NSSAI Information element providing network slice
        specification.

        See {{bibref|3GPP-TS.24.501|Clause 9.11.2.8}}
      </description>

      <parameter name="SliceServiceType" access="readOnly" version="2.19">
        <description>
          The Slice Service Type (SST). {{enum}}

          See {{bibref|3GPP-TS.23.501|Clause 5.15.2.2}}.
        </description>
        <syntax>
          <dataType ref="SST"/>
        </syntax>
      </parameter>

      <parameter name="SliceDifferentiator" access="readOnly" version="2.19">
        <description>
          The Slice differentiator is an optional number used to differentiate
          network slices with the same SST.

          See {{bibref|3GPP-TS.23.501|Clause 5.15.2.1}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.SessionManagement.PDU.{i}.QoSRule.{i}."
        access="readOnly" numEntriesParameter="QoSRuleNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.19">
      <description>
        This object describes the PDU QoS Rule table. The purpose of the QoS
        Rule table is to assign a QFI to mark traffic based on a set of
        classification rules. The rules are set by the network operator and are
        specific for each PDU.

        For example:

        * A QoS Rule with a default used for general traffic has the following
          parameters.

        * QFI=1

        * DQR=1 - Default rule

        * Filter 1 for rule

        * Direction=bidirectional

        * Type=1 - Match all

        * A QoS Rule matching a voice service.

        * QFI=32

        * DQR=0

        * Filter 1 for rule

        * Direction=bidirectional

        * Type=33 - Destination IPv6 range

        * Value=2001:8000/48 - Destination IPv6 range

        * Filter 2 for rule

        * Direction=bidirectional

        * Type=16 - Destination IPv4 address with netmask

        * Value=203.1.0.0 255.255.255.0 - Destination IPv4 address with netmask

        A full description can be found at {{bibref|3GPP-TS.24.501|clause
        9.11.4.13}} QoS Rules
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="Identifier"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.19">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Identifier" access="readOnly">
        <description>
          The QoS rule identifier field is used to identify the QoS rule.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Precedence" access="readOnly">
        <description>
          The QoS rule precedence field is used to specify the precedence of
          the QoS rule among all QoS rules. The higher the value of the QoS
          rule precedence field, the lower the precedence of that QoS rule is.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Segregation" access="readOnly">
        <description>
          In the UE to network direction the segregation bit indicates whether
          the UE is requesting the network to bind service data flows described
          by the QoS rule to a dedicated QoS Flow. When {{true}} segregation is
          requested.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="QFI" access="readOnly">
        <description>
          QoS Flow identifier.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="63"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="DQR" access="readOnly">
        <description>
          Default QoS rule flag. When {{true}} this QoS rule is the default QoS
          rule.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="FilterNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.SessionManagement.PDU.{i}.QoSRule.{i}.Filter.{i}."
        access="readOnly" numEntriesParameter="FilterNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.19">
      <description>
        This object describes the PDU QoS Rule Filter table. As each packet
        filter is logically anded with the others, there shall not be more than
        one occurrence of each packet filter component type.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.19">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Direction" access="readOnly">
        <description>
          The packet filter direction field is used to indicate for what
          traffic direction the filter applies. See
          {{bibref|3GPP-TS.24.501|Clause 9.11.4.13}} {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="downlink"/>
            <enumeration value="uplink"/>
            <enumeration value="bidirectional"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Type" access="readOnly">
        <description>
          Packet filter component type identifier. See
          {{bibref|3GPP-TS.24.501|Clause 9.11.4.13}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="Value" access="readOnly">
        <description>
          Matching value for the component type. See
          {{bibref|3GPP-TS.24.501|Clause 9.11.4.13}}.
        </description>
        <syntax>
          <string>
            <size maxLength="1024"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.SessionManagement.PDU.{i}.QoSFlow.{i}."
        access="readOnly" numEntriesParameter="QoSFlowNumberOfEntries"
        minEntries="0" maxEntries="unbounded" version="2.19">
      <description>
        Table of all QoS Flow Indicators (QFI) and their properties supported
        by the access network for this particular PDU.

        For example:

        * A QoS Flow with a QFI of 1 used for general traffic has the following
          parameters.

        * FiveQI=8

        * A QoS Flow with a QFI of 32 used for voice traffic with a guaranteed
          bitrate of 150k has the following parameters.

        * FiveQI=1

        * GFBRUplink=150

        * GFBRDownlink=150
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="QFI"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.19">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="QFI" access="readOnly">
        <description>
          QoS Flow Identifier.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="63"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="FiveQI" access="readOnly">
        <description>
          5G QoS Identifier. See {{bibref|3GPP-TS.23.501|Clause 5.7.4}} for a
          table of standardised 5QI QoS characteristics.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="GFBRUplink" access="readOnly">
        <description>
          Guaranteed Flow Bitrate - Upstream (expressed in {{units}}).
        </description>
        <syntax>
          <unsignedLong>
            <units value="bits per second"/>
          </unsignedLong>
        </syntax>
      </parameter>

      <parameter name="GFBRDownlink" access="readOnly">
        <description>
          Guaranteed Flow Bitrate - Downstream (expressed in {{units}}).
        </description>
        <syntax>
          <unsignedLong>
            <units value="bits per second"/>
          </unsignedLong>
        </syntax>
      </parameter>

      <parameter name="MFBRUplink" access="readOnly">
        <description>
          Maximum Flow Bitrate - Upstream (expressed in {{units}}).
        </description>
        <syntax>
          <unsignedLong>
            <units value="bits per second"/>
          </unsignedLong>
        </syntax>
      </parameter>

      <parameter name="MFBRDownlink" access="readOnly">
        <description>
          Maximum Flow Bitrate - Downstream (expressed in {{units}}).
        </description>
        <syntax>
          <unsignedLong>
            <units value="bits per second"/>
          </unsignedLong>
        </syntax>
      </parameter>

      <parameter name="AveragingWindow" access="readOnly">
        <description>
          Averaging window for both uplink and downlink in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="EPSBearer" access="readOnly">
        <description>
          EPS Bearer Identity. See {{bibref|3GPP-TS.24.301|Clause 9.3.2}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.GatewayInfo." access="readOnly" minEntries="1"
        maxEntries="1" version="2.0">
      <description>
        This object contains information associated with a connected Internet
        Gateway Device.
      </description>

      <parameter name="ManufacturerOUI" access="readOnly"
          activeNotify="forceDefaultEnabled">
        <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"
          activeNotify="forceDefaultEnabled">
        <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"
          activeNotify="forceDefaultEnabled">
        <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.PacketCaptureDiagnostics." access="readOnly"
        minEntries="1" maxEntries="1" version="2.13">
      <description>
        The PacketCaptureDiagnostics object. This diagnostic is used to record
        packet capture data on a valid (layer 2 or above) interface in libpcap
        or pcapng format.
      </description>

      <parameter name="DiagnosticsState" access="readWrite">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="DiagnosticsState">
            <enumeration value="None" access="readOnly"/>
            <enumeration value="Requested"/>
            <enumeration value="Canceled" optional="true"/>
            <enumeration value="Complete" access="readOnly"/>
            <enumeration value="Error" access="readOnly" optional="true"/>
            <enumeration value="Error_Internal" access="readOnly"/>
            <enumeration value="Error_Other" access="readOnly"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite" version="2.13">
        <description>
          A reference to a (layer 2 or above) interface object that will be the
          target of this packet capture diagnostic.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="weak" targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Format" access="readOnly" version="2.13">
        <description>
          This indicates whether the network trace will be recorded in libpcap
          {{bibref|LIBPCAP}} or pcapng format, and is dependent on the
          underlying method of performing a network trace.
        </description>
        <syntax>
          <string>
            <enumeration value="libpcap">
              <description>
                The packet data is recorded in libpcap {{bibref|LIBPCAP}}
                format.
              </description>
            </enumeration>
            <enumeration value="pcapng">
              <description>
                The packet data is recorded in pcapng format.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="Duration" access="readWrite" version="2.13">
        <description>
          The duration in {{units}} to copy packets to the file target. The
          diagnostic completes when either the {{param}},
          {{param|PacketCount}}, or {{param|ByteCount}} conditions are met.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="PacketCount" access="readWrite" version="2.13">
        <description>
          The maximum number of packets to record to the file target. A value
          of zero (0) indicates no limit. The diagnostic completes when the
          {{param|Duration}}, {{param|ByteCount}}, or {{param}} conditions are
          met.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ByteCount" access="readWrite" version="2.13">
        <description>
          The maximum number of bytes to record to the file target. A value of
          zero (0) indicates no limit. The diagnostic completes when
          {{param|Duration}}, {{param|PacketCount}} or {{param}} conditions are
          met.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="FileTarget" access="readWrite" version="2.13">
        <description>
          The {{datatype}} specifying the destination file location. The HTTPS
          transport MUST be supported, and the HTTP transport MAY be supported.
          Other transports MAY also be supported.
        </description>
        <syntax>
          <dataType ref="URL"/>
        </syntax>
      </parameter>

      <parameter name="FilterExpression" access="readWrite" version="2.13">
        <description>
          A ({{bibref|BPF}}) formatted expression used to restrict the types of
          network packets that are recorded to {{param|FileTarget}}.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Username" access="readWrite" version="2.13">
        <description>
          Username to be used by the Agent to authenticate with the file
          location. This string is set to {{empty}} if no authentication is
          required.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Password" access="readWrite" version="2.13">
        <description>
          Password to be used by the Agent to authenticate with the file
          location. This string is set to {{empty}} if no authentication is
          required.
        </description>
        <syntax secured="true">
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="PacketCaptureResultNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.PacketCaptureDiagnostics.PacketCaptureResult.{i}."
        access="readOnly"
        numEntriesParameter="PacketCaptureResultNumberOfEntries" minEntries="0"
        maxEntries="unbounded" dmr:noUniqueKeys="true" version="2.13">
      <description>
        Results for individual packet capture diagnostics. Packet capture files
        whose FileLocation is local to the system SHOULD be deleted when the
        next diagnostic is run, or upon a system reboot.
      </description>

      <parameter name="FileLocation" access="readOnly">
        <description>
          The {{datatype}} specifying the resulting file location of the packet
          capture record that triggered this result. This MAY be different than
          the location specified in FileTarget.
        </description>
        <syntax>
          <dataType ref="URL"/>
        </syntax>
      </parameter>

      <parameter name="StartTime" access="readOnly">
        <description>
          The local system time at which the capture was started.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="EndTime" access="readOnly">
        <description>
          The local system time at which the capture was completed.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="Count" access="readOnly">
        <description>
          The number of packets recorded to the file target.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.SelfTestDiagnostics." access="readOnly"
        minEntries="1" maxEntries="1" version="2.0">
      <description>
        This diagnostics test is vendor-specific and MAY include testing
        hardware, software, and/or firmware.
      </description>

      <parameter name="DiagnosticsState" access="readWrite"
          activeNotify="canDeny">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="DiagnosticsState">
            <enumeration value="None" access="readOnly"/>
            <enumeration value="Requested"/>
            <enumeration value="Canceled" optional="true"/>
            <enumeration value="Complete" access="readOnly"/>
            <enumeration value="Error_Internal" access="readOnly"/>
            <enumeration value="Error_Other" access="readOnly"/>
          </dataType>
        </syntax>
      </parameter>

      <parameter name="Results" access="readOnly" activeNotify="canDeny"
          version="2.0">
        <description>
          Results of self-test (vendor specific).
        </description>
        <syntax>
          <string>
            <size maxLength="1024"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.USPAgent." access="readOnly" minEntries="1"
        maxEntries="1" version="2.15">
      <description>
        This object contains general information about the USP Agent itself.
        For information related to the Device that hosts the Agent, please
        reference the {{object|#.DeviceInfo}} object.
      </description>

      <parameter name="EndpointID" access="readOnly">
        <description>
          The unique USP identifier for this USP Agent.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="SoftwareVersion" access="readOnly">
        <description>
          The current USP Agent software version; not the version of the
          overall device firmware, which is located in
          {{param|.DeviceInfo.SoftwareVersion}}.

          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="UpTime" access="readOnly" activeNotify="canDeny">
        <description>
          Time in {{units}} since the USP Agent was last restarted (either via
          a reset of the software or reboot of the underlying device).
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SupportedProtocols" access="readOnly">
        <description>
          USP Message Transfer Protocols supported by this USP Agent. The USP
          Agent MUST support at least one Protocol.
        </description>
        <syntax>
          <list minItems="1"/>
          <string>
            <enumeration value="CoAP" status="deleted">
              <description>
                See {{bibref|RFC7252}}.

                {{deprecated|2.15|because the CoAP MTP was deprecated in USP
                1.2}}

                {{obsoleted|2.17}}

                {{deleted|2.18}}
              </description>
            </enumeration>
            <enumeration value="WebSocket">
              <description>See {{bibref|RFC6455}}</description>
            </enumeration>
            <enumeration value="STOMP">
              <description>See {{bibref|STOMP1.2}}</description>
            </enumeration>
            <enumeration value="MQTT">
              <description>
                See {{bibref|MQTT311}} and {{bibref|MQTT50}}
              </description>
            </enumeration>
            <enumeration value="UDS" version="2.16">
              <description>See {{bibref|TR-369}}</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="SupportedFingerprintAlgorithms" access="readOnly">
        <description>
          {{list|each entry is an algorithm for calculating fingerprints that
          is supported by the Agent}}
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="SHA-1">
              <description>As specified in {{bibref|RFC3174}}.</description>
            </enumeration>
            <enumeration value="SHA-224">
              <description>As specified in {{bibref|RFC6234}}.</description>
            </enumeration>
            <enumeration value="SHA-256">
              <description>As specified in {{bibref|RFC6234}}.</description>
            </enumeration>
            <enumeration value="SHA-384">
              <description>As specified in {{bibref|RFC6234}}.</description>
            </enumeration>
            <enumeration value="SHA-512">
              <description>As specified in {{bibref|RFC6234}}.</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="AdvertisedDeviceSubtypes" access="readWrite">
        <description>
          {{list|each entry is a subtype component of the service type that is
          advertised for the device using mDNS as defined in
          {{bibref|RFC6762}}}}
        </description>
        <syntax>
          <list/>
          <string/>
        </syntax>
      </parameter>

      <parameter name="MaxSubscriptionChangeAdoptionTime" access="readWrite">
        <description>
          The acceptable amount of time in {{units}} between the alteration of
          the Agent's Subscriptions (e.g. updated subscription, new
          subscription, removed subscription, etc.) and the notifications
          related to those subscriptions being delivered.

          For example, if this parameter is set to 30 {{units}}, then once a
          Subscription has been updated, the Agent has 30 {{units}} before it
          needs to start delivering notifications based on the updated version
          of the Subscription (instead of the old version of the Subscription).
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="5"/>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MTPNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ControllerNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="CertificateNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="AddCertificate" access="readWrite">
        <description>
          Provides a mechanism to allow an ACS to add a new certificate to
          {{object|Certificate.{i}}}. This does not automatically produce a
          trust relationship with the host identified by the Certificate. To
          produce a trust relationship, an entry is required to exist in
          {{param|Controller.{i}.Credential}} or
          {{param|ControllerTrust.Credential.{i}.Credential}} that references
          the new {{object|Certificate.{i}}} entry. The Agent will use the
          Serial Number and Issuer fields from the content provided in this
          parameter to populate the {{param|Certificate.{i}.SerialNumber}} and
          {{param|Certificate.{i}.Issuer}} parameters. If
          {{object|Certificate}} already has an instance with the same
          {{param|Certificate.{i}.SerialNumber}} and
          {{param|Certificate.{i}.Issuer}} parameters, this command will fail.
          To replace an instance with the same
          {{param|Certificate.{i}.SerialNumber}} and
          {{param|Certificate.{i}.Issuer}}, the existing instance must first be
          deleted.

          The value of this parameter is the X.509 certificate in
          Privacy-enhanced Electronic Mail (PEM) {{bibref|RFC7468}} format.
        </description>
        <syntax command="true">
          <string>
            <size maxLength="65535"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.USPAgent.MTP.{i}." access="readWrite" minEntries="0"
        maxEntries="unbounded" numEntriesParameter="MTPNumberOfEntries"
        enableParameter="Enable" version="2.15">
      <description>
        Each instance of this table represents a MTP used by the local Agent.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.15">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Enable" access="readWrite">
        <description>
          Enable/Disable this {{object}} instance.

          If this {{object}} instance is to be disabled and currently used for
          communication with the requesting controller, the agent has to send
          the request response first, before disabling it.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The current operational state of the {{object}} instance.
        </description>
        <syntax>
          <string>
            <enumeration value="Up"/>
            <enumeration value="Down">
              <description>
                Value when this {{object}} instance cannot establish
                communication.
              </description>
            </enumeration>
            <enumeration value="Error" optional="true">
              <description>
                Value when this {{object}} instance is misconfigured.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="Protocol" access="readWrite">
        <description>
          The Message Transfer Protocol (MTP) to be used for communications by
          a USP Endpoint.
        </description>
        <syntax>
          <string>
            <enumerationRef targetParam="#.SupportedProtocols"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="EnableMDNS" access="readWrite">
        <description>
          This parameter, when {{true}}, enables the advertisement of DNS-SD
          services defined for this {{object}} instance using mDNS as defined
          in {{bibref|RFC6762}}.

          This parameter cannot be set to {{true}} if there are multiple
          {{object}} instances with the same value of the {{param|Protocol}}
          parameter.

          When {{true}}, the hostname advertised in the SRV record MUST be a
          Fully Qualified Domain Name (FQDN).

          The interfaces that advertise these DNS-SD services are restricted to
          the set of interfaces associated with this {{object}} instance and
          the interfaces defined by the
          {{param|.DNS.SD.Advertise.{i}.Interface}} parameter.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="true"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.USPAgent.MTP.{i}.CoAP." access="readOnly"
        minEntries="0" maxEntries="1" discriminatorParameter="Protocol"
        status="deleted" version="2.15">
      <description>
        If the USP Endpoint uses the CoAP Message Transfer Protocol (MTP), then
        this object contains CoAP specific configuration parameters.

        {{deprecated|2.15|because the CoAP MTP was deprecated in USP 1.2}}

        {{obsoleted|2.17}}

        {{deleted|2.18}}
      </description>

      <parameter name="Interfaces" access="readWrite">
        <description>
          {{reference|the {{object|###.IP.Interface}} object instance that this
          server will use as its host address to receive USP messages}}

          {{empty}} will bind this server to all interfaces for this device.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetParent="###.IP.Interface."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Port" access="readWrite">
        <description>
          The port number used by the CoAP Server to receive USP messages.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="65535"/>
          </unsignedInt>
          <default type="object" value="5683"/>
        </syntax>
      </parameter>

      <parameter name="Path" access="readWrite">
        <description>
          The path that is used by the CoAP Server in order to receive USP
          messages.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="IsEncrypted" status="deleted" access="readOnly">
        <description>
          This parameter represents whether or not communications that utilize
          this {{object}} object instance are encrypted.

          {{deprecated|2.14|because the {{param|EnableEncryption}} parameter
          will dictate whether all connections to this CoAP server instance are
          or are not encrypted}}

          {{obsoleted|2.16}}

          {{deleted|2.17}}
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="EnableEncryption" access="readWrite">
        <description>
          When {{true}}, encryption MUST be used for this MTP instance.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="true"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.USPAgent.MTP.{i}.STOMP." access="readOnly"
        minEntries="0" maxEntries="1" discriminatorParameter="Protocol"
        version="2.15">
      <description>
        If the USP Endpoint uses the STOMP Message Transfer Protocol (MTP),
        then this object contains STOMP Client specific configuration
        parameters related to how the Agent communicates with the STOMP Server.
      </description>

      <parameter name="Reference" access="readWrite">
        <description>
          A reference to the STOMP Connection used by this Agent when
          communicating via the STOMP MTP.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent=".STOMP.Connection."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Destination" access="readWrite">
        <description>
          The STOMP destination where the Agent will be listening to incoming
          USP messages.
        </description>
        <syntax>
          <string/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DestinationFromServer" access="readOnly">
        <description>
          The STOMP destination contained in the subscribe-dest header of the
          CONNECTED STOMP Frame.

          If the Agent doesn't receive a subscribe-dest header in the CONNECTED
          STOMP Frame, then the value of this Parameter MUST be set to
          {{empty}}.

          If this parameter's value is not empty then this is the STOMP
          destination address for this Agent, but if the value is empty the
          {{param|Destination}} Parameter contains the STOMP destination
          address for this Agent.
        </description>
        <syntax>
          <string/>
          <default type="object" value=""/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.USPAgent.MTP.{i}.WebSocket." access="readOnly"
        minEntries="0" maxEntries="1" discriminatorParameter="Protocol"
        version="2.15">
      <description>
        If the USP Endpoint uses the WebSocket Message Transfer Protocol (MTP)
        as a WebSocket server, then this object contains WebSocket specific
        configuration parameters.
      </description>

      <parameter name="Interfaces" access="readWrite">
        <description>
          {{reference|the {{object|###.IP.Interface}} object instance that this
          server will use as its host address to receive USP messages}}

          {{empty}} will bind this server to all interfaces for this device.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetParent="###.IP.Interface."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Port" access="readWrite">
        <description>
          The port number used by the WebSocket Server to receive USP messages.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="65535"/>
          </unsignedInt>
          <default type="object" value="8443"/>
        </syntax>
      </parameter>

      <parameter name="Path" access="readWrite">
        <description>
          The service path that is provided by the WebSocket Server in order to
          exchange USP messages. The value MUST be used as defined in
          {{bibref|RFC3986|Section 3.3}}.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="EnableEncryption" access="readWrite" version="2.15">
        <description>
          When {{true}}, encryption MUST be used for all connections to this
          MTP instance.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="true"/>
        </syntax>
      </parameter>

      <parameter name="KeepAliveInterval" access="readWrite" version="2.15">
        <description>
          The duration in {{units}} between when WebSocket ping control frames
          are transmitted by the Agent's WebSocket server to the Controller's
          WebSocket client.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="60"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.USPAgent.MTP.{i}.MQTT." access="readOnly"
        minEntries="0" maxEntries="1" discriminatorParameter="Protocol"
        version="2.15">
      <description>
        If the USP Endpoint uses the MQTT Message Transfer Protocol (MTP), then
        this object contains MQTT Client specific configuration parameters
        related to how the Agent communicates with the MQTT broker.
      </description>

      <parameter name="Reference" access="readWrite">
        <description>
          A reference to the MQTT Client used by this Agent when communicating
          via the MQTT MTP.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent=".MQTT.Client."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="ResponseTopicConfigured" access="readWrite">
        <description>
          The Agent's configured "reply to" topic. When MQTT 5.0 is being used,
          this value is put in the PUBLISH Response Topic property for all
          PUBLISH packets with a USP Record, if no Response Information (value
          recorded in {{param|ResponseTopicDiscovered}}) is included in the
          CONNACK. When MQTT 3.1.1 is being used, this value is put at the end
          of the PUBLISH Topic Name property (as specified in
          {{bibref|TR-369|Section "MQTT Binding"}}. If the value of {{param}}
          is not a subset (wildcarded or precise match) of any of the
          {{param|Reference}} {{param|.MQTT.Client.{i}.Subscription.{i}.Topic}}
          values the Agent MUST subscribe to this Topic. The value MUST NOT
          contain any wild card characters (“+”, “#”).
        </description>
        <syntax>
          <string>
            <size maxLength="65535"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ResponseTopicDiscovered" access="readOnly">
        <description>
          Duplicate of {{param|Reference}}
          {{param|.MQTT.Client.{i}.ResponseInformation}}. This is the value of
          the CONNACK Response Information property supplied by a MQTT 5.0
          server and is used by a MQTT 5.0 client as the basis for the PUBLISH
          Response Topic property for all PUBLISH packets that expect a
          response. If a value is received from the MQTT 5.0 server, it will be
          used instead of any value configured in
          {{param|ResponseTopicConfigured}}.
        </description>
        <syntax>
          <string>
            <size maxLength="65535"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="PublishQoS" access="readWrite">
        <description>
          The Agent MUST use this QoS value when sending a USP Record on this
          MTP.

          If the referenced MQTT Client uses MQTT 5.0 and the MQTT server only
          indicates support for a QoS value in the CONNACK Maximum QoS property
          lower than this QoS value, the Agent MUST use the highest QoS value
          that is supported by the server.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="2"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.USPAgent.MTP.{i}.UDS." access="readOnly"
        minEntries="0" maxEntries="1" discriminatorParameter="Protocol"
        version="2.16">
      <description>
        If the USP Endpoint uses the Unix Domain Socket (UDS) Message Transfer
        Protocol (MTP), then this object contains UDS specific configuration
        parameters related to how this Agent communicates with a Controller on
        another USP Endpoint.

        An example of how to set up this MTP can be found in {{bibref|TR-369|
        Section "Example Data Models for a USP Broker and USP Services"}}.
      </description>

      <parameter name="UnixDomainSocketRef" access="readWrite">
        <description>
          A reference to the Unix Domain Socket used by this Agent when
          communicating via the UDS MTP.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong"
                targetParent=".UnixDomainSockets.UnixDomainSocket."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.USPAgent.Controller.{i}." access="readWrite"
        minEntries="0" maxEntries="unbounded"
        numEntriesParameter="ControllerNumberOfEntries"
        enableParameter="Enable" version="2.15">
      <description>
        Each instance of this table represents a USP Controller that has access
        to this USP Agent.

        On the deletion of an entry from this table, the Agent MUST send the
        ObjectDeletion notification to all subscribed recipients, even if the
        recipient is the deleted Controller itself. This notification is the
        last notification sent to this Controller.
      </description>
      <uniqueKey functional="true">
        <parameter ref="EndpointID"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.15">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="EndpointID" access="readWrite">
        <description>
          The unique USP identifier for this USP Controller.
        </description>
        <syntax>
          <string/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="ControllerCode" access="readWrite">
        <description>
          Information about the configuration state of an Agent as it pertains
          to the {{object}} instance. This is not information related to an
          operator's installation or usage of the protocol, that information is
          maintained in {{param|ProvisioningCode}}.

          This parameter could be used in scenarios where the Controller needs
          to perform some kind of initialization or periodic configuration
          monitoring. For example, a Controller might perform some initial
          configuration of an Agent on first contact (perhaps to configure the
          Subscriptions). The Controller could inspect this parameter to
          determine the current state of the Agent's configuration, allowing
          the Controller to streamline the configuration process.
        </description>
        <syntax>
          <string>
            <size maxLength="128"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="ProvisioningCode" access="readWrite">
        <description>
          Identifying information which MAY be used by the {{object}} instance
          to determine {{object}} instance specific customization and
          provisioning parameters.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Enable" access="readWrite">
        <description>
          Enable/Disable this {{object}} instance.

          If the Controller instance is to be disabled, the Agent MUST send the
          ValueChange notification to all subscribed recipients, even if the
          recipient is the disabled Controller itself. This notification is the
          last notification sent to this Controller until it is enabled again.
          The USP Endpoint MUST terminate the MTP connection. When {{false}},
          messages (notifications) are not sent to the remote endpoint
          represented by this {{object}} instance, and any MTP session
          establishment are refused.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="AssignedRole" access="readWrite">
        <description>
          {{list|each entry is a Role that has been assigned to this {{object}}
          instance by means other than the
          {{param|#.ControllerTrust.Credential.{i}.Role}} parameter}}
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetParent="#.ControllerTrust.Role."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="InheritedRole" access="readOnly">
        <description>
          {{list|each entry is a Role that has been assigned to this {{object}}
          instance from the {{param|#.ControllerTrust.Credential.{i}.Role}}
          parameter associated with the CA credential
          ({{param|#.ControllerTrust.Credential.{i}.Credential}}) used to
          validate the Controller certificate}}
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetParent="#.ControllerTrust.Role."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Credential" access="readWrite">
        <description>
          {{nolist}}{{noreference}}

          Comma-separated list of strings, the set of certificates from
          {{object|#.Certificate.{i}}} that a Controller can present for use in
          authenticating the identity of this {{object}} instance.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetParent="#.Certificate."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="PeriodicNotifInterval" access="readWrite">
        <description>
          If a Periodic Event Notification Subscription instance is associated
          with this USP Controller, then this is the duration in {{units}} of
          the interval for which the USP Agent MUST attempt to issue a Periodic
          Notification to the USP Controller.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="PeriodicNotifTime" access="readWrite">
        <description>
          If a Periodic Event Notification Subscription instance is associated
          with this USP Controller, then this is an absolute time reference in
          UTC to determine when the USP Agent will issue a Periodic
          Notification. Each Periodic Notification MUST occur at this reference
          time plus or minus an integer multiple of the
          {{param|PeriodicNotifInterval}}.

          {{param}} is used only to set the ''phase'' of the Periodic Event
          Notifications. The actual value of {{param}} can be arbitrarily far
          into the past or future.

          For example, if {{param|PeriodicNotifInterval}} is 86400 (a day) and
          if {{param}} is set to UTC midnight on some day (in the past,
          present, or future) then Periodic Notifications will be sent 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-106|section 3.2}}
          indicates that no particular time reference is specified. That is,
          the USP Agent MAY locally choose the time reference, and needs only
          to adhere to the specified {{param|PeriodicNotifInterval}}.

          If absolute time is not available to the USP Agent, its Periodic
          Notification behavior MUST be the same as if the {{param}} parameter
          was set to the Unknown Time value.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="USPNotifRetryMinimumWaitInterval" access="readWrite">
        <description>
          This parameter is related to the retry mechanism for Notifications.

          Configures the first retry wait interval, in {{units}}, as specified
          in {{bibref|TR-369|Section "Responses to Notifications and
          Notification Retry"}}.

          A value of 5 corresponds to the default behavior.

          The USP Agent MUST use a random value between {{param}} and
          ({{param}} * {{param|USPNotifRetryIntervalMultiplier}} / 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>
          <default type="object" value="5"/>
        </syntax>
      </parameter>

      <parameter name="USPNotifRetryIntervalMultiplier" access="readWrite">
        <description>
          This parameter is related to the retry mechanism for Notifications.

          Configures the retry interval multiplier as specified in
          {{bibref|TR-369|Section "Responses to Notifications and Notification
          Retry"}}.

          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.

          The USP Agent MUST use a random value between
          {{param|USPNotifRetryMinimumWaitInterval}} and
          ({{param|USPNotifRetryMinimumWaitInterval}} * {{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>
          <default type="object" value="2000"/>
        </syntax>
      </parameter>

      <parameter name="MTPNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SendOnBoardRequest" access="readWrite">
        <description>
          When set to {{true}}, requests the Agent to send a USP
          ''OnBoardRequest'' notification to this Controller.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.USPAgent.Controller.{i}.MTP.{i}." access="readWrite"
        minEntries="0" maxEntries="unbounded"
        numEntriesParameter="MTPNumberOfEntries" enableParameter="Enable"
        version="2.15">
      <description>
        Each instance of this table represents a MTP used by this Controller.
      </description>
      <uniqueKey functional="true">
        <parameter ref="Protocol"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.15">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Enable" access="readWrite">
        <description>
          Enable/Disable this {{object}} instance.

          If this {{object}} instance is to be disabled and currently used for
          communication with the requesting controller, the agent has to send
          the request response first, before disabling it.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Protocol" access="readWrite">
        <description>
          The Message Transfer Protocol (MTP) to be used for communications by
          a USP Endpoint.
        </description>
        <syntax>
          <string>
            <enumerationRef targetParam="##.SupportedProtocols"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Order" access="readWrite" version="2.15">
        <description>
          The order (relative priority) to use when determining which
          {{object}} to use for communicating to the Controller.

          A value of ''1'' indicates the highest precedence. For each
          configured {{object}}, the instance with the lowest value is
          attempted first.

          When more than one {{object}} instance has the same value, then each
          instance with the same value SHOULD be attempted at the same time.

          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>
    </object>

    <object name="Device.USPAgent.Controller.{i}.MTP.{i}.CoAP."
        access="readOnly" minEntries="0" maxEntries="1"
        discriminatorParameter="Protocol" status="deleted" version="2.15">
      <description>
        If the USP Endpoint uses the CoAP Message Transfer Protocol (MTP), then
        this object contains CoAP specific configuration parameters.

        {{deprecated|2.15|because the CoAP MTP was deprecated in USP 1.2}}

        {{obsoleted|2.17}}

        {{deleted|2.18}}
      </description>

      <parameter name="Host" access="readWrite">
        <description>
          The hostname or IP Address of the Controller's CoAP server.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Port" access="readWrite">
        <description>
          The port number used by the Controller's CoAP Server to receive USP
          messages.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Path" access="readWrite">
        <description>
          The path that is used by the Controller's CoAP Server in order to
          receive USP messages.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="EnableEncryption" access="readWrite">
        <description>
          When {{true}}, encryption MUST be used as specified in
          {{bibref|TR-369|Section "MTP Message Encryption"}}.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="true"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.USPAgent.Controller.{i}.MTP.{i}.STOMP."
        access="readOnly" minEntries="0" maxEntries="1"
        discriminatorParameter="Protocol" version="2.15">
      <description>
        If the USP Endpoint uses the STOMP Message Transfer Protocol (MTP),
        then this object contains STOMP Client specific configuration
        parameters related to how this Controller communicates with the STOMP
        Server.
      </description>

      <parameter name="Reference" access="readWrite">
        <description>
          A reference to the STOMP Connection used by this Controller when
          communicating via the STOMP MTP.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent=".STOMP.Connection."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Destination" access="readWrite">
        <description>
          The STOMP destination where the Controller will be listening to
          incoming USP messages.
        </description>
        <syntax>
          <string/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="USPServiceRef" access="readOnly" version="2.16">
        <description>
          A reference to the USP Service associated with this Agent when
          communicating via the STOMP MTP.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent=".USPServices.USPService."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.USPAgent.Controller.{i}.MTP.{i}.WebSocket."
        access="readOnly" minEntries="0" maxEntries="1"
        discriminatorParameter="Protocol" version="2.15">
      <description>
        If the USP Endpoint uses the WebSocket Message Transfer Protocol (MTP)
        as a WebSocket client, then this object contains WebSocket specific
        configuration parameters.
      </description>

      <parameter name="Host" access="readWrite">
        <description>
          The hostname or IP Address of the Controller's WebSocket server.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Port" access="readWrite">
        <description>
          The port number used by the Controller's WebSocket server to receive
          USP messages.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Path" access="readWrite">
        <description>
          The service path that is provided by the Controller's WebSocket
          server in order to exchange USP messages. The value MUST be used as
          defined in {{bibref|RFC3986|Section 3.3}}.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="IsEncrypted" status="deleted" access="readOnly">
        <description>
          This parameter represents whether or not communications that utilize
          this {{object}} object instance are encrypted.

          {{deprecated|2.14|because the {{param|EnableEncryption}} parameter
          will dictate whether this {{object}} is or is not encrypted}}

          {{obsoleted|2.16}}

          {{deleted|2.17}}
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="EnableEncryption" access="readWrite" version="2.15">
        <description>
          When {{true}}, encryption MUST be used for this MTP instance.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="true"/>
        </syntax>
      </parameter>

      <parameter name="KeepAliveInterval" access="readWrite">
        <description>
          The duration in {{units}} between when WebSocket ping control frames
          are transmitted by the Agent's WebSocket client to the Controller's
          WebSocket server.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="CurrentRetryCount" access="readOnly">
        <description>
          The current retry count of the session. When zero (0), the session is
          not in a retry state.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SessionRetryMinimumWaitInterval" access="readWrite">
        <description>
          Configures the first retry wait interval, in {{units}}, as specified
          in {{bibref|TR-369|Section "WebSocket Session Retry"}}.

          The USP Agent MUST use a random value between {{param}} and
          ({{param}} * {{param|SessionRetryIntervalMultiplier}} / 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>
          <default type="object" value="5"/>
        </syntax>
      </parameter>

      <parameter name="SessionRetryIntervalMultiplier" access="readWrite">
        <description>
          Configures the retry interval multiplier as specified in
          {{bibref|TR-369|Section "WebSocket Session Retry"}}.

          This value is expressed in units of 0.001. Hence the values of the
          multiplier range between 1.000 and 65.535.

          The USP Agent MUST use a random value between
          {{param|SessionRetryMinimumWaitInterval}} and
          ({{param|SessionRetryMinimumWaitInterval}} * {{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>
          <default type="object" value="2000"/>
        </syntax>
      </parameter>

      <parameter name="USPServiceRef" access="readOnly" version="2.16">
        <description>
          A reference to the USP Service associated with this Agent when
          communicating via the WebSocket MTP.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent=".USPServices.USPService."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.USPAgent.Controller.{i}.MTP.{i}.MQTT."
        access="readOnly" minEntries="0" maxEntries="1"
        discriminatorParameter="Protocol" version="2.15">
      <description>
        If the USP Endpoint uses the MQTT Message Transfer Protocol (MTP), then
        this object contains MQTT Client specific configuration parameters
        related to how this Controller communicates with the MQTT broker.
      </description>

      <parameter name="Reference" access="readWrite" status="deleted">
        <description>
          A reference to the MQTT Client used by this Controller when
          communicating via the MQTT MTP.

          {{deprecated|2.16|because {{param|AgentMTPReference}} was added}}

          {{obsoleted|2.18}}

          {{deleted|2.19}}
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent=".MQTT.Client."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Topic" access="readWrite">
        <description>
          The topic name the USP Controller has subscribed to, to be used for
          Notify messages send by the USP Agent.
        </description>
        <syntax>
          <string>
            <size maxLength="65535"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="PublishRetainResponse" access="readWrite">
        <description>
          If set to {{true}} the Agent MUST set the RETAIN flag in MQTT PUBLISH
          messages carrying a USP Response Message to 1, unless the MQTT server
          sent Retain Available = 0 (MQTT 5.0) in its CONNACK (in which case,
          the Agent MUST set the RETAIN flag to 0).
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="PublishRetainNotify" access="readWrite">
        <description>
          If set to {{true}} the Agent MUST set the RETAIN flag in MQTT PUBLISH
          messages carrying a USP Notify Message to 1, unless the MQTT server
          sent Retain Available = 0 (MQTT 5.0) in its CONNACK (in which case,
          the Agent MUST set the RETAIN flag to 0).
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="AgentMTPReference" access="readWrite" version="2.16">
        <description>
          {{reference|the {{object|###.MTP.}} object instance containing the
          Response Topic used by this Controller when communicating via the
          MQTT MTP}}
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="###.MTP." targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="USPServiceRef" access="readOnly" version="2.16">
        <description>
          A reference to the USP Service associated with this Agent when
          communicating via the MQTT MTP.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent=".USPServices.USPService."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.USPAgent.Controller.{i}.MTP.{i}.UDS."
        access="readOnly" minEntries="0" maxEntries="1"
        discriminatorParameter="Protocol" version="2.16">
      <description>
        If the USP Endpoint uses the Unix Domain Socket (UDS) Message Transfer
        Protocol (MTP), then this object contains UDS specific configuration
        parameters related to how this Agent communicates with a Controller on
        another USP Endpoint.

        An example of how to set up this MTP can be found in {{bibref|TR-369|
        Section "Example Data Models for a USP Broker and USP Services"}}.
      </description>

      <parameter name="UnixDomainSocketRef" access="readWrite">
        <description>
          A reference to the Unix Domain Socket used by this Agent when
          communicating via the UDS MTP.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong"
                targetParent=".UnixDomainSockets.UnixDomainSocket."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="USPServiceRef" access="readOnly">
        <description>
          A reference to the USP Service associated with this Agent when
          communicating via the UDS MTP.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent=".USPServices.USPService."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.USPAgent.Certificate.{i}." access="readOnly"
        minEntries="0" maxEntries="unbounded"
        numEntriesParameter="CertificateNumberOfEntries" version="2.15">
      <description>
        Each instance of this table represents information related to a X.509
        certificate (see {{bibref|RFC5280}}) of a Controller or Certificate
        Authority. Instances are referenced from
        {{param|#.Controller.{i}.Credential}} and
        {{param|#.ControllerTrust.Credential.{i}.Credential}}.
      </description>
      <uniqueKey functional="true">
        <parameter ref="SerialNumber"/>
        <parameter ref="Issuer"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.15">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Enable" access="readWrite">
        <description>
          Enable/Disable this {{object}} instance.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="SerialNumber" access="readOnly">
        <description>
          The Serial Number field in an X.509 certificate, see
          {{bibref|RFC5280}}.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Issuer" access="readOnly">
        <description>
          The Issuer field in an X.509 certificate, see {{bibref|RFC5280}};
          i.e. the Distinguished Name (DN) of the entity who has signed the
          certificate.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.USPAgent.ControllerTrust." access="readOnly"
        minEntries="1" maxEntries="1" version="2.15">
      <description>
        This object contains information that an Agent applies when
        establishing a trust relationship with a Controller.
      </description>

      <parameter name="UntrustedRole" access="readWrite">
        <description>
          {{list|each entry is a Role that is associated with Controllers whose
          identity cannot be authenticated. The value of the {{param}}
          parameter is appended to the {{param|#.Controller.{i}.AssignedRole}}
          parameter}}

          In some instances, this policy is set by the Agent and cannot be
          modified by Controllers. If the Agent does not allow modification of
          this parameter, the Agent MUST respond with an error to the request
          to set this parameter.
        </description>
        <syntax>
          <list maxItems="1"/>
          <string>
            <pathRef refType="strong" targetParent="Role." targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="BannedRole" access="readWrite">
        <description>
          The Role that is associated with Controllers indicate banned access.

          When assigned to a Controller or associated with an entry in the
          {{object|Credential}} table, this MUST be the only value of the
          {{param}} parameter of the {{param|#.Controller.{i}.AssignedRole}}
          parameter.

          The Agent SHOULD refuse to accept USP messages from, or send USP
          messages to, any Controller that has this Role.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="Role." targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SecuredRoles" access="readWrite" version="2.16">
        <description>
          {{list|each entry is a Role that is associated with Controllers to
          indicate their access to secured parameters (e.g.
          {{param|.WiFi.AccessPoint.{i}.Security.WEPKey}}). The value of the
          {{param}} parameter is appended to the
          {{param|#.Controller.{i}.AssignedRole}} parameter}}

          Only Controllers with a secured role assigned (and the appropriate
          permissions set) MUST be able to have access to secured parameters
          content.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetParent="Role." targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="TOFUAllowed" access="readWrite">
        <description>
          When {{true}}, Agent has active policy that allows for self-signed
          certificates and certificates from unknown Certificate Authorities
          (CAs) to be trusted on first use (TOFU).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="TOFUInactivityTimer" access="readWrite">
        <description>
          Inactivity timer in {{units}}.

          This timer is started when trust on first use (TOFU) policy is used
          to accept a Controller certificate. If no USP Message is received
          before this timer elapses, the Agent MUST tear down the MTP
          connection and underlying (D)TLS session.

          A value of 0 means that the TOFU inactivity timer is effectively
          disabled.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RoleNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="CredentialNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ChallengeNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.USPAgent.ControllerTrust.Role.{i}."
        access="readWrite" minEntries="0" maxEntries="unbounded"
        numEntriesParameter="RoleNumberOfEntries" enableParameter="Enable"
        version="2.15">
      <description>
        Each instance of this table represents a Role that can be assigned to
        or inherited by a Controller via the Controller Trust mechanism. The
        Role contains a set of permissions that determine how the Controller
        can interact with the data model.

        If multiple permission entries associated with this table contain a
        Target that evaluates to the same instantiated Object/Parameter for
        multiple Roles, then the permissions to be used are a union of the
        identified permissions.
      </description>
      <uniqueKey functional="true">
        <parameter ref="Name"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.15">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Enable" access="readWrite">
        <description>
          Enable/Disable this {{object}} instance.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Name" access="readWrite">
        <description>
          The Role assigned to this {{object}} instance.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="PermissionNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.USPAgent.ControllerTrust.Role.{i}.Permission.{i}."
        access="readWrite" minEntries="0" maxEntries="unbounded"
        numEntriesParameter="PermissionNumberOfEntries"
        enableParameter="Enable" version="2.15">
      <description>
        Each instance of this table represents the permissions that are
        extended to a set of Targets for a specified Role.

        If there are multiple entries in this table for a specific Role where
        the Targets overlap, the permissions for the entry with the highest
        value takes priority over all others.
      </description>
      <uniqueKey functional="true">
        <parameter ref="Order"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.15">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Enable" access="readWrite">
        <description>
          Enable/Disable this {{object}} instance.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Order" access="readWrite">
        <description>
          The order (relative priority) to use when determining the permissions
          for overlapping Targets that are contained within the same
          {{object|#.}}.

          The larger value of this parameter takes priority over a permission
          with a smaller value (i.e., 0 has the lowest priority).
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="Targets" access="readWrite">
        <description>
          {{list|each entry is a target to which the value of the permissions
          parameters are assigned}}

          When an entry is a value of a Partial Path, the permissions are
          associated to that Object and any child Object/Parameter.

          When the value of an entry is an Object instance then the permissions
          are associated to all Parameters of the Object instance.

          When an entry is a value of a Search Path as defined in
          {{bibref|TR-369}} that resolves to zero or more Parameter Paths, then
          all Parameter Paths that result from the evaluation of the Search
          Path are subject to the permissions assigned by this {{object}}
          instance.
        </description>
        <syntax>
          <list/>
          <string/>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>

      <parameter name="Param" access="readWrite">
        <description>
          The permissions of a Role for the specified Targets.

          A string of 4 characters where each character represents a permission
          ("`r`" for Read, "`w`" for Write, "`x`" for Execute", and "`n`" for
          Notify).

          The string is always in the same order (`rwxn`) and the lack of a
          permission is signified by a "`-`" character (e.g., `r--n`).

          The following describes the meaning of the permissions for Parameter
          type of Targets:

          # Read: Grants the capability to read the value of the Parameter via
            Get and read the meta-information of the Parameter via
            GetSupportedDM.

          # Write: Grants the capability to update the value of the Parameter
            via Add or Set.

          # Execute: Grants no capabilities; Parameters can not be executed.

          # Notify: Grants the capability to receive Notify Messages of type
            ValueChange for this Parameter.
        </description>
        <syntax>
          <string>
            <size minLength="4" maxLength="4"/>
          </string>
          <default type="object" value="----"/>
        </syntax>
      </parameter>

      <parameter name="Obj" access="readWrite">
        <description>
          The permissions of a Role for the specified Targets.

          A string of 4 characters where each character represents a permission
          ("`r`" for Read, "`w`" for Write, "`x`" for Execute", and "`n`" for
          Notify).

          The string is always in the same order (`rwxn`) and the lack of a
          permission is signified by a "`-`" character (e.g., `r--n`).

          The following describes the meaning of the permissions for Object
          type of Targets:

          # Read: Grants the capability for Get to resolve Object paths. Grants
            the capability to read the meta-information of the Object via
            GetSupportedDM.

          # Write: Grants no capabilities for Static Objects. Grants the
            capability to create a new instance of a Multi-Instanced Object via
            Add (e.g. Device.LocalAgent.Controller.).

          # Execute: Grants no capabilities; Objects are not executable and
            Commands are controlled by the CommandEventPermissions.

          # Notify: Grants the capability to receive Notify Messages of type
            ObjectCreation for this Object (multi-instance objects only).
        </description>
        <syntax>
          <string>
            <size minLength="4" maxLength="4"/>
          </string>
          <default type="object" value="----"/>
        </syntax>
      </parameter>

      <parameter name="InstantiatedObj" access="readWrite">
        <description>
          The permissions of a Role for the specified Targets.

          A string of 4 characters where each character represents a permission
          ("`r`" for Read, "`w`" for Write, "`x`" for Execute", and "`n`" for
          Notify).

          The string is always in the same order (`rwxn`) and the lack of a
          permission is signified by a "`-`" character (e.g., `r--n`).

          The following describes the meaning of the permissions for
          Instantiated Object type of Targets:

          # Read: Grants the capability to read the instance numbers and unique
            keys of the Instantiated Object via GetInstances.

          # Write: Grants the capability to remove an existing instance of an
            Instantiated Object via Delete (e.g.
            Device.LocalAgent.Controller.1.).

          # Execute: Grants no capabilities; Object Instances are not
            executable and Commands are controlled by the
            CommandEventPermissions.

          # Notify: Grants the capability to receive Notify Messages of type
            ObjectDeletion for this Instantiated Object.
        </description>
        <syntax>
          <string>
            <size minLength="4" maxLength="4"/>
          </string>
          <default type="object" value="----"/>
        </syntax>
      </parameter>

      <parameter name="CommandEvent" access="readWrite">
        <description>
          The permissions of a Role for the specified Targets.

          A string of 4 characters where each character represents a permission
          ("`r`" for Read, "`w`" for Write, "`x`" for Execute", and "`n`" for
          Notify).

          The string is always in the same order (`rwxn`) and the lack of a
          permission is signified by a "`-`" character (e.g., `r--n`).

          The following describes the meaning of the permissions for Command
          and Event type of Targets:

          # Read: Grants the capability to read the meta-information of the
            Command (including input and output arguments) and Event (including
            arguments) via GetSupportedDM.

          # Write: Grants no capabilities; Commands are executed instead of
            written to and Events are read only.

          # Execute: Grants the capability to execute the Command via Operate,
            but grants no capabilities to an Event.

          # Notify: Grants the capability to receive Notify Messages of type
            OperationComplete for this Event or Command.
        </description>
        <syntax>
          <string>
            <size minLength="4" maxLength="4"/>
          </string>
          <default type="object" value="----"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.USPAgent.ControllerTrust.Credential.{i}."
        access="readWrite" minEntries="0" maxEntries="unbounded"
        numEntriesParameter="CredentialNumberOfEntries"
        enableParameter="Enable" version="2.15">
      <description>
        Each instance of this table represents a trusted credential. The
        credential can be that of a certificate authority (CA) for a Controller
        whose EndpointID is unknown.

        When a credential is supplied to the Agent by a Controller during
        authentication, the credentials in this table are used to determine if
        any of the supplied certificates (including those in the chain of
        trust) are considered "trusted".

        If the Controller authenticated via an entry in this table is not
        previously known to the Agent, the Roles specified in the
        {{param|Role}} parameter might be automatically applied, depending on
        the value of the {{param|AllowedUses}} parameter.
      </description>
      <uniqueKey functional="true">
        <parameter ref="Credential"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.15">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Enable" access="readWrite">
        <description>
          Enable/Disable this {{object}} instance.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Role" access="readWrite">
        <description>
          {{nolist}}

          Comma-separated list of strings, the (set of) Role(s) applied to a
          Controller authenticated through this {{object}} instance.

          The roles are added to the Controller's current list of Roles by
          replacing the value of the {{param|##.Controller.{i}.InheritedRole}}
          parameter.

          If the Controller is already known to the Agent, with an associated
          Role, this parameter has no impact.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetParent="#.Role." targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Credential" access="readWrite">
        <description>
          A reference to the {{object|##.Certificate.{i}}} instance for use in
          the authentication of certificates provided by a Controller and
          authorization of Controllers, and for authentication of certificates
          used for MTP encryption.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="##.Certificate."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="AllowedUses" access="readWrite">
        <description>
          Identifies what usages the Certificate Authority (CA) authenticated
          by the associated credential is trusted to authorize.
        </description>
        <syntax>
          <string>
            <enumeration value="MTP-only">
              <description>
                The CA can only authorize MTP (domain) connectivity, and cannot
                authenticate Controllers, i.e. no Roles are automatically
                applied.
              </description>
            </enumeration>
            <enumeration value="MTP-and-USP">
              <description>
                The CA can authorize MTP (domain) connectivity and authenticate
                Controller, i.e. the {{param|Role}} parameter applies.
              </description>
            </enumeration>
            <enumeration value="MTP-and-broker">
              <description>
                The CA can authorize MTP (domain) connectivity and the
                presenter of a certificate signed by such CA is trusted to have
                authenticated the identity of Endpoints whose Records it
                transmits. Any Controller communicating through such a Broker
                is automatically authenticated, i.e. the {{param|Role}}
                parameter applies. See {{bibref|TR-369|"Authentication and
                Authorization"}} for additional description of the Trusted
                Broker concept.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.USPAgent.ControllerTrust.Challenge.{i}."
        access="readWrite" minEntries="0" maxEntries="unbounded"
        numEntriesParameter="ChallengeNumberOfEntries" enableParameter="Enable"
        version="2.15">
      <description>
        Each instance of this table represents information that is used to
        challenge a Controller in order to assign a Role to the Controller or
        to determine the authenticity of a Certificate.

        The Controller requests a type of challenge from an Agent using the
        RequestChallenge command.

        The Agent returns the value of the {{param|Instruction}} for that type
        of challenge to the Controller which the Controller then provides a
        third-party.

        The third-party responds to the Instruction which the Controller then
        sends to the Agent using the ChallengeResponse command.

        The Agent verifies the response to the Challenges and executes an
        implementation specific Agent logic in order to establish trust with
        the Controller.

        This could include (but is not limited to):

        *Assignment of roles to the Controller is done by appending the
         non-duplicate roles of the {{param|Role}} parameter to the value of
         the {{param|##.Controller.{i}.AssignedRole}} parameter.

        *Use the Controller's certificate to which the challenge response was
         received in order to authenticate the identity of the Controller.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.15">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Description" access="readWrite">
        <description>
          The description of this {{object}} instance.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="Role" access="readWrite">
        <description>
          {{nolist}}

          Comma-separated list of strings, the (set of) role(s) appended
          (non-duplicate values only) to the value of the
          {{param|##.Controller.{i}.AssignedRole}} parameter.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetParent="#.Role." targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Enable" access="readWrite">
        <description>
          Enable/Disable this {{object}} instance.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Type" access="readWrite">
        <description>
          The type of challenge that will be verified from the challenge
          response provided by the third-party through the Controller.
        </description>
        <syntax>
          <string>
            <enumeration value="Passphrase">
              <description>
                The challenge uses a passphrase the third-party is expected to
                match.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="Value" access="readWrite">
        <description>
          The value of the challenge that is specific to the type of challenge.
        </description>
        <syntax secured="true">
          <base64/>
        </syntax>
      </parameter>

      <parameter name="ValueType" access="readWrite">
        <description>
          The media type with a format as defined by {{bibref|RFC6838}} of the
          content of the {{param|Value}} parameter.
        </description>
        <syntax>
          <string>
            <enumeration value="text/plain"/>
            <enumeration value="image/jpeg"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Instruction" access="readWrite">
        <description>
          The instruction that is provided to the external party by the
          Controller requesting the challenge.
        </description>
        <syntax>
          <base64/>
        </syntax>
      </parameter>

      <parameter name="InstructionType" access="readWrite">
        <description>
          The media type with a format as defined by {{bibref|RFC6838}} of the
          content of the {{param|Instruction}} parameter.
        </description>
        <syntax>
          <string>
            <enumeration value="text/plain"/>
            <enumeration value="image/jpeg"/>
            <enumeration value="text/html"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Retries" access="readWrite">
        <description>
          The number of consecutive failed {{template|USP-CHALLENGE-RESPONSE}}
          attempts against this {{object}} instance (as determined by the
          {{template|USP-REQUEST-CHALLENGE}}.ChallengeRef associated with
          {{template|USP-CHALLENGE-RESPONSE}}.ChallengeID parameters) that are
          allowed before a {{param|LockoutPeriod}} is started for this
          {{object}} instance. Counts of failed attempts for a {{object}}
          instance are reset after a successful
          {{template|USP-CHALLENGE-RESPONSE}} for the {{object}} instance or
          after a started {{param|LockoutPeriod}} expires.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="LockoutPeriod" access="readWrite">
        <description>
          Once the {{param|Retries}} value has been reached by failed
          {{template|USP-CHALLENGE-RESPONSE}} attempts against this {{object}}
          instance (as determined by the
          {{template|USP-REQUEST-CHALLENGE}}.ChallengeRef associated with
          {{template|USP-CHALLENGE-RESPONSE}}.ChallengeID parameters), the
          value of this parameter represents the amount of time (in {{units}})
          that the Agent will prevent any {{template|USP-CHALLENGE-RESPONSE}}
          or {{template|USP-REQUEST-CHALLENGE}} against this {{object}}
          instance from succeeding. Any attempt to issue a
          {{template|USP-REQUEST-CHALLENGE}} or
          {{template|USP-CHALLENGE-RESPONSE}} command where the associated
          {{template|USP-REQUEST-CHALLENGE}}.ChallengeRef points to this
          {{object}} instance during the lockout period will result in an Error
          response with 7002 as the error code. When a started lockout period
          has expired, the count of failed attempts for this {{object}}
          instance will be reset. If the Agent chooses to delete
          {{template|USP-CHALLENGE-RESPONSE}}.ChallengeID values for a locked
          out {{object}}, the Agent can send the 7004 error code for values it
          does not recognize.

          A value of zero means that a lockout period doesn't apply and the
          {{template|USP-REQUEST-CHALLENGE}} command can be attempted without
          the need to wait between failed challenges.
        </description>
        <syntax>
          <int>
            <range minInclusive="0"/>
            <units value="seconds"/>
          </int>
          <default type="object" value="30"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.ETSIM2M." access="readOnly" minEntries="1"
        maxEntries="1" version="2.6">
      <description>
        The {{object}} object represents the management object for the Remote
        Entity Functions (REM) functions defined in the M2M Functional
        Architecture {{bibref|ETSIM2MFA}}.
      </description>

      <parameter name="SCLNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.ETSIM2M.SCL.{i}." access="readWrite"
        numEntriesParameter="SCLNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded" version="2.6">
      <description>
        This object represents an instance of a Service Capability Layer (SCL)
        for a M2M device or gateway.

        The {{object}} MAY be maintained by the ACS or by the CPE.

        When the {{object}} provides the administration of an SCL that is
        represented as a {{object|##.SoftwareModules.ExecutionUnit}} the
        {{object}} is maintained in the
        {{param|##.SoftwareModules.ExecutionUnit.{i}.References}} parameter.

        Section 5.1.2 of the M2M Functional Architecture {{bibref|ETSIM2MFA}}
        describes the high level event flows for SCL registration.

        Section 9.3.2.6.2 of the M2M Functional Architecture
        {{bibref|ETSIM2MFA}} describes the creation/registration of SCLs.

        Section 9.3.2.6.4 of the M2M Functional Architecture
        {{bibref|ETSIM2MFA}} describes the update/re-registration of SCLs.

        Section 9.3.2.6.5 of the M2M Functional Architecture
        {{bibref|ETSIM2MFA}} describes the deletion/deregistration of SCLs.

        {{keys}}
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Administratively enables or disables this instance.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Alias" access="readWrite" version="2.6">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="AnnouncedToSCLList" access="readWrite">
        <description>
          {{list}} The list represents an unordered set of URIs
          {{bibref|RFC3986}}.

          A list item is a URI string that represents a SCL to which the this
          {{object}} will announce original (local) resources.

          The AnnouncedToSCL has an interest in the discovery of the local
          resource. Section 9.2.1.14 Announced Resource of the M2M Functional
          Architecture {{bibref|ETSIM2MFA}} provides a description of this
          behavior of an Announced Resource.

          Section 9.3.2.28 of the M2M Functional Architecture
          {{bibref|ETSIM2MFA}} and Section 10.3.2.7 of the M2M mIa, dIa and mId
          Interfaces {{bibref|ETSIM2MInterfaces}} describes the process of
          announcing and deannouncing of resources within a SCL.
        </description>
        <syntax>
          <list/>
          <string/>
        </syntax>
      </parameter>

      <parameter name="SAFPolicySetNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="AreaNwkInstanceNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="AreaNwkDeviceInfoInstanceNumberOfEntries"
          access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.ETSIM2M.SCL.{i}.Discovery." access="readOnly"
        minEntries="1" maxEntries="1" version="2.6">
      <description>
        This object is represents the administration properties used when a
        NSCL requests discovery of resources within this {{object|##.SCL}}
        instance.

        Section 9.3.2.27 of the M2M Functional Architecture
        {{bibref|ETSIM2MFA}} describes the process of discovery of resources
        within a SCL.
      </description>

      <parameter name="MaxNumberOfDiscovRecords" access="readWrite">
        <description>
          The maximum number of URIs {{bibref|RFC3986}} for discovered
          resources contained in a discovery result.

          This parameter and the {{param|MaxSizeOfDiscovAnswer}} parameter are
          mutually exclusive in that a result can be limited due to the bounds
          of either parameter.

          A value of 0 indicates that the SCL does not have a limit for this
          parameter.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MaxSizeOfDiscovAnswer" access="readWrite">
        <description>
          The maximum size in bytes of the Discovery Answer.

          This parameter and the {{param|MaxNumberOfDiscovRecords}} parameter
          are mutually exclusive in that a result can be limited due to the
          bounds of either parameter.

          A value of 0 indicates that the SCL does not have a limit for this
          parameter.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.ETSIM2M.SCL.{i}.Reregistration." access="readOnly"
        minEntries="1" maxEntries="1" version="2.6">
      <description>
        This object represents the properties and status necessary for a SCL to
        reregister with one or more NSCLs.
      </description>

      <parameter name="RegTargetNSCLList" access="readWrite">
        <description>
          {{list}} The list represents a priority ordered set of URIs
          {{bibref|RFC3986}}. The item that is first in the list has the
          highest priority.

          A list item is a URI {{bibref|RFC3986}} string that represents a NSCL
          that this {{object|##.SCL}} instance can use in order to attempt
          registration.

          When modified the contents of this parameter replace the {{param}}
          received during the bootstrap procedure.
        </description>
        <syntax>
          <list/>
          <string/>
        </syntax>
      </parameter>

      <parameter name="RegSearchStrings" access="readWrite">
        <description>
          {{list}} The list represents the string tokens used as keys when
          searching for this {{object|##.SCL}} instance.

          Sections 9.2.3.6.2 and 9.2.3.6.4 of the M2M Functional Architecture
          {{bibref|ETSIM2MFA}} describe the usage for this parameter.
        </description>
        <syntax>
          <list/>
          <string/>
        </syntax>
      </parameter>

      <parameter name="RegAccessRightID" access="readWrite">
        <description>
          URI {{bibref|RFC3986}} that represents the identifier of the access
          right resource. The value of this parameter is maintained by the NSCL
          and used by the SCL as a default access right identifier for
          re-registration to NSCLs.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="RegExpirationDuration" access="readWrite">
        <description>
          The duration, in {{units}}, that the SCL will use in its next
          re-registration attempt. Any negative value represents an infinite
          duration.
        </description>
        <syntax>
          <int>
            <units value="seconds"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="Reregistration" access="readWrite">
        <description>
          {{command}} When set to {{true}}, triggers an immediate
          re-registration action where the SCL re-registers with the SCLs in
          the {{param|RegTargetNSCLList}} .
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.ETSIM2M.SCL.{i}.Reregistration.ActionStatus."
        access="readOnly" minEntries="1" maxEntries="1" version="2.6">
      <description>
        This object represents the status of the Reregistration action.
      </description>

      <parameter name="Progress" access="readOnly" activeNotify="canDeny">
        <description>
          The progress, in {{units}}, of the Reregistration action. The
          progress is measured from 0-100%. A value of 0 indicates that the
          action has not started. A value of 100 indicates that the action has
          completed.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="100"/>
            <units value="percent"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="FinalStatus" access="readOnly">
        <description>
          The completion status of the Reregistration operation. Enumeration
          of:

          {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="SUCCESS"/>
            <enumeration value="FAILURE"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}." access="readWrite"
        numEntriesParameter="SAFPolicySetNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded"
        version="2.6">
      <description>
        This object describes the parameters necessary to administer the
        store-and-forward (SAF) handling policies applied to requests to access
        remotely hosted resources.

        Policies are described by instances of {{object}}. Which instances of
        {{object}} are used by the SCL is determined by the
        {{param|PolicyScope}} parameter.

        Section 9.3.1.5 of the M2M Functional Architecture {{bibref|ETSIM2MFA}}
        and Section 10.3.1.2.2 of the M2M mIa, dIa and mId Interfaces
        {{bibref|ETSIM2MInterfaces}} describe the behavior for SAF processing.

        There is at most one {{object}} instance with the {{param|PolicyScope}}
        containing a specific application id (APP-ID) URI value within the
        list.

        There is exactly one {{object}} instance with a {{param|PolicyScope}}
        value of "default".
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Administratively enables or disables this instance.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Alias" access="readWrite" version="2.6">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="PolicyScope" access="readWrite">
        <description>
          The parameter defines the scope of the policies contained in this
          instance of a {{object|#.SAFPolicySet}}.

          The parameter value is:

          *a list of unordered set of URIs {{bibref|RFC3986}} that represents
           an M2M application id (APP-ID)

          *the value of "default"

          *{{empty}}

          When this parameter is set to a list of application id (APP-ID) URIs
          {{bibref|RFC3986}}, the scope indicates that the policies are
          applicable to requests coming from any specific application on that
          list.

          When this parameter is set to a string with the value "default", the
          scope indicates that the policies are the default policies for this
          {{object|##.SCL}} instance.

          When this parameter is set to {{empty}}, the value represents an
          unknown {{object|#.SAFPolicySet}} and the {{object|#.SAFPolicySet}}
          is not to be used.
        </description>
        <syntax>
          <list/>
          <string/>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>

      <parameter name="ANPPolicyNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}."
        access="readWrite" numEntriesParameter="ANPPolicyNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded"
        version="2.6">
      <description>
        This table contains the SAF-handling policies which are controlled by
        the Access Network Provider(s).

        {{keys}}
      </description>
      <uniqueKey functional="true">
        <parameter ref="ANName"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Administratively enables or disables this instance.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Alias" access="readWrite" version="2.6">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="ANName" access="readWrite">
        <description>
          This parameter is the name of the access network provider and used to
          determine for which access network the policies defined in the
          {{object|#.ANPPolicy}} table will apply.
        </description>
        <syntax>
          <string/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="BlockPeriodNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="RequestCategoryNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.BlockPeriod.{i}."
        access="readWrite" numEntriesParameter="BlockPeriodNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded"
        version="2.6">
      <description>
        This table contains a list of block periods for a
        {{object|##.ANPPolicy}}.

        A block period defines how long the device will wait before re-trying
        to establish connectivity via the access network after the previous
        attempt has failed.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="FailedAttempts"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Administratively enables or disables this instance.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Alias" access="readWrite" version="2.6">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="FailedAttempts" access="readWrite">
        <description>
          Number of consecutively failed access attempts for which the
          {{param|BlockDuration}} will be used to block the next access
          attempt.

          The SCL will apply the {{object}} entry with the largest number of
          consecutive failed attempts that is smaller or equal to the actual
          number of consecutive failed attempts.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="BlockDuration" access="readWrite">
        <description>
          The duration, in {{units}}, to which to block further access
          attempts.
        </description>
        <syntax>
          <int>
            <units value="seconds"/>
          </int>
          <default type="object" value="0"/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}."
        access="readWrite" numEntriesParameter="RequestCategoryNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded"
        version="2.6">
      <description>
        This table contains the Request Category (RCAT) policy items for
        defining when it is appropriate to use the access network for
        processing requests.
      </description>
      <uniqueKey functional="true">
        <parameter ref="RCAT"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Administratively enables or disables this instance.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Alias" access="readWrite" version="2.6">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="RCAT" access="readWrite">
        <description>
          An RCAT is a string that represents a request category used for
          policy enforcement.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="ScheduleNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}."
        access="readWrite" numEntriesParameter="ScheduleNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded"
        version="2.6">
      <description>
        This table contains the schedules that define when it is appropriate to
        use the access network for processing requests for the specified value
        of the {{param|#.RCAT}}.

        The combination of all instances of the {{object|AbsTimeSpan}} along
        with the {{param|Schedules}} parameter makes up the complete schedule
        for this instance of a {{object}}.

        The {{param|Schedules}} parameter defines a recurrence of the schedule.
        If instances of {{object|AbsTimeSpan}} exist, these instances places
        constraints on the schedule recurrence.

        If the value of the {{param|Schedules}} parameter is {{empty}}, at
        least one enabled instance of {{object|AbsTimeSpan}} MUST exist.

        Processing behavior for the use of RCAT Schedules is defined in section
        10.3.1.2.2 of the M2M mIa, dIa and mId Interfaces
        {{bibref|ETSIM2MInterfaces}} document.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Administratively enables or disables this instance.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Alias" access="readWrite" version="2.6">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Schedules" access="readWrite">
        <description>
          The list is a set of schedule strings.

          A schedule string is formatted according to the date and time fields
          defined CRONTAB input file definition in {{bibref|POSIXBase}}.

          The {{param}} parameter is used to set the recurrence of the
          schedule.

          The timezone used for this parameter is dependent upon the existence
          of instances of {{object|AbsTimeSpan}} for this {{object}}. If
          instances of {{object|AbsTimeSpan}} exist, then the timezone of the
          {{object|AbsTimeSpan}} is used otherwise the UTC timezone is used for
          this {{param}} parameter.

          Note the command field is not used in this definition and any
          whitespace or comma characters within a Schedule string MUST be
          escaped using percent as defined in {{bibref|TR-106|section 3.2.3}}

          Example of CRONTAB string:

          *"* 0-6 * * 1-5" would mean every minute for the period from 0:00h to
           6:00h (inclusive) on any week day (Monday through Friday) and would
           be represented as "*%200-6%20*%20*%201-5"

          *"*/15 22-23,0-4 * * 1-5" would mean every 15 minutes for the period
           from 22:00h to 04:00h on any week day (Monday through Friday) and
           would be represented as "*/15%2022-23%2C0-4%20*%20*%201-5"
        </description>
        <syntax>
          <list/>
          <string/>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>

      <parameter name="AbsTimeSpanNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}.AbsTimeSpan.{i}."
        access="readWrite" numEntriesParameter="AbsTimeSpanNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded"
        version="2.6">
      <description>
        This object defines an instance of a time span used for determining an
        RCAT schedule.

        An instance of the {{object}} represents the time span in which the
        schedule recurrence defined in {{param|#.Schedules}} is constrained.

        {{object}} instances with unknown values for the {{param|StartTime}} or
        {{param|EndTime}} are ignored.

        All instances of the {{object}} within this {{object|##.Schedule}} MUST
        utilize the same time zone.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Administratively enables or disables this instance.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Alias" access="readWrite" version="2.6">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="StartTime" access="readWrite">
        <description>
          Date and time that represents the start of the time span.

          The value 0001-01-01T00:00:00Z represents an unknown value.

          The device MUST reject requests to set the {{param}} value greater
          than the {{param|EndTime}} value.
        </description>
        <syntax>
          <dateTime/>
          <default type="object" value="0001-01-01T00:00:00Z"/>
        </syntax>
      </parameter>

      <parameter name="EndTime" access="readWrite">
        <description>
          Date and time that represents the end of the time span.

          The value 9999-12-31T23:59:59Z represents an infinite time span from
          the start time.

          The value 0001-01-01T00:00:00Z represents an unknown value.

          The device MUST reject requests to set the {{param}} value less than
          or equal the {{param|StartTime}} value.
        </description>
        <syntax>
          <dateTime/>
          <default type="object" value="0001-01-01T00:00:00Z"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy."
        access="readOnly" minEntries="1" maxEntries="1" version="2.6">
      <description>
        This object maintains the SAF handling policies' properties that are
        controlled by the M2M service provider for a request.
      </description>

      <parameter name="DefaultRCATValue" access="readWrite">
        <description>
          The default RCAT value to use for requests to remotely hosted
          resources during SAF-handling when no RCAT value was specified in the
          request.
        </description>
        <syntax>
          <string/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="RequestCategoryNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.RequestCategory.{i}."
        access="readWrite" numEntriesParameter="RequestCategoryNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded"
        version="2.6">
      <description>
        This object maintains a list of properties to be used for forwarding
        requests with a specified {{param|RCAT}}.

        Processing behavior for the use of M2M Service Provider policies is
        defined in section 10.3.1.2.2.1 of the M2M mIa, dIa and mId Interfaces
        {{bibref|ETSIM2MInterfaces}} document.
      </description>
      <uniqueKey functional="true">
        <parameter ref="RCAT"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Administratively enables or disables this instance.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Alias" access="readWrite" version="2.6">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="RCAT" access="readWrite">
        <description>
          An RCAT is a string that represents a request category used for
          policy enforcement.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="TolerableDelay" access="readWrite">
        <description>
          The tolerable duration, in {{units}}, that a request of the given
          RCAT category can be pending in SAF handling when a request from an
          M2M Application does not specify a tolerable delay.

          A value of -1 represents an infinite duration.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
            <units value="seconds"/>
          </int>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="Thresh" access="readWrite">
        <description>
          The threshold of maximum number of pending requests permitted to be
          held for a specified RCAT.

          A value of 0 indicates that the request should be transmitted
          immediately.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="Mem" access="readWrite">
        <description>
          This parameter defines the maximum size of the request queue for
          pending requests permitted to be held for a specified RCAT.

          The format of the string is an integer with an appended memory unit
          (B - Bytes, K - 1024 Bytes, M - 1048576 Bytes, G -1073741824, T -
          1099511627776 Bytes).

          When the value is {{empty}} the memory threshold criteria for the
          associated RCATList will be ignored in SAF handling.

          {{pattern}}
        </description>
        <syntax>
          <string>
            <pattern value="([0-9]{1,15}?[BKMGT])"/>
            <pattern value="">
              <description>{{empty}}</description>
            </pattern>
          </string>
        </syntax>
      </parameter>

      <parameter name="RankedANList" access="readWrite">
        <description>
          The list is a prioritized set of Access Networks where the preference
          of using an Access Network is based on order of the list items with
          the lowest order list item as the most preferred Access Network.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetParent="##.ANPPolicy."
                targetType="row"/>
          </string>
          <default type="object" value="[]"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.ETSIM2M.SCL.{i}.AreaNwkInstance.{i}."
        access="readOnly" numEntriesParameter="AreaNwkInstanceNumberOfEntries"
        minEntries="0" maxEntries="unbounded" dmr:fixedObject="true"
        version="2.6">
      <description>
        The M2M Area Network information provides administration capabilities
        for remote management (REM) of M2M Devices (D', d) that are attached to
        this {{object|##.SCL}} instance.

        This object provides the administration of the properties needed by the
        SCL to remotely manage M2M Devices within a specific type of M2M Area
        network as defined by {{param|AreaNwkType}}.

        Multiple instances of {{object}} with the same {{param|AreaNwkType}} is
        permitted.

        Section 5.3.5 of the M2M Functional Architecture {{bibref|ETSIM2MFA}}
        describes the REM functionality expected of a SCL for an M2M Device.
      </description>
      <uniqueKey functional="true">
        <parameter ref="ID"/>
      </uniqueKey>

      <parameter name="ID" access="readOnly">
        <description>
          URI {{bibref|RFC3986}} that represents the identifier of the
          instance.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="AreaNwkType" access="readOnly">
        <description>
          Devices (D' and d) that connect to an SCL are said to be "attached
          devices" and are organized by M2M Area Networks within the
          {{object|##.SCL}} instance. The {{param}} is an implementation-chosen
          string that indicates the type of M2M Area Network.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="ListOfDevices" access="readOnly">
        <description>
          {{list}} {{reference}}

          The list represents the M2M Devices (D', d) that are attached to this
          {{object|##.SCL}} instance that are within this {{object}} instance.
          The list does not contain an instance for this CPE.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong"
                targetParent="#.AreaNwkDeviceInfoInstance." targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="PropertyNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.ETSIM2M.SCL.{i}.AreaNwkInstance.{i}.Property.{i}."
        access="readOnly" numEntriesParameter="PropertyNumberOfEntries"
        minEntries="0" maxEntries="unbounded" dmr:noUniqueKeys="true"
        version="2.6">
      <description>
        This object contains an instance of a property extension (name value
        pair) for this {{object|##.AreaNwkInstance}} instance.

        For example, if the {{param|#.AreaNwkType}} is ZigBee the
        {{object|##.AreaNwkInstance}} will contain ZigBee specific parameters
        that have not been modeled for the M2M Area network.

        At a minimum, a property instance MUST exist that defines an attribute
        that describes the IP layer address type (e.g., IPv4, IPv6, non-IP) of
        this M2M Area Network.
      </description>

      <parameter name="Name" access="readOnly">
        <description>
          The name of the property
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="Value" access="readOnly">
        <description>
          The value of the property.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}."
        access="readOnly"
        numEntriesParameter="AreaNwkDeviceInfoInstanceNumberOfEntries"
        minEntries="0" maxEntries="unbounded" dmr:noUniqueKeys="true"
        dmr:fixedObject="true" version="2.6">
      <description>
        The M2M Area Network Device Information provides the administration
        capability to the SCL for maintenance of M2M Devices (D', d) that are
        attached to this {{object|##.SCL}} instance.

        While discovery and identification of devices by the M2M Gateway or
        Device (CPE) is implementation specific, each device is represented by
        an instance of the {{object|###.Hosts.Host}} table.

        When the M2M Device is managed by the CWMP endpoint of the CPE, the
        {{object}} is expected to be referenced by an instance of one of the
        following tables:

        *{{object|###.ManagementServer.EmbeddedDevice}}

        *{{object|###.ManagementServer.VirtualDevice}}

        Section 5.3.5 of the M2M Functional Architecture {{bibref|ETSIM2MFA}}
        describes the REM functionality expected of a SCL to a M2M Device.

        This object instance provides the administration properties required by
        a SCL to remotely manage an instance of a M2M Device within a M2M area
        network.

        A M2M Device is associated with an instance of a
        {{object|#.AreaNwkInstance}}.

        This table contains parameters and information of the M2M Device
        related to each {{object|#.AreaNwkInstance}} instance.

        Instances of this table are created and deleted by the CPE. The ACS MAY
        modify the writeable parameters of this object instance but it is
        possible that the value set by the ACS is not retained between reboots
        of the M2M Device.
      </description>

      <parameter name="AreaNwkInstance" access="readOnly">
        <description>
          {{reference}}
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="#.AreaNwkInstance."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Host" access="readOnly">
        <description>
          {{list}} {{reference|the {{object|###.Hosts.Host}} table entry that
          represents an active or inactive M2M Device}}
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetParent="###.Hosts.Host."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ListOfDeviceNeighbors" access="readOnly">
        <description>
          {{list}} {{reference}} References all the {{object|###.Hosts.Host}}
          table entries, whether active or inactive, that represent the
          reachable neighbors of this M2M Device (D' or d).
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetParent="###.Hosts.Host."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ListOfDeviceApplications" access="readOnly">
        <description>
          The list is an unordered set of URIs {{bibref|RFC3986}}.

          A list item is an URI string that represents an application id
          (APP-ID) for the M2M D'A applications residing on the M2M Device for
          the associated {{object|#.AreaNwkInstance}}.

          Table B.58 of the M2M Functional Architecture {{bibref|ETSIM2MFA}}
          describes this parameter.
        </description>
        <syntax>
          <list/>
          <string/>
        </syntax>
      </parameter>

      <parameter name="SleepInterval" access="readWrite">
        <description>
          The interval, in {{units}}, between sleep periods for the device.

          A value of 0 represents a device that does not sleep.

          Note: When this value is modified, the CPE could modify the {{param}}
          for this M2M Device in other Area Networks.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SleepDuration" access="readWrite">
        <description>
          The duration, in {{units}}, of a sleep period.

          The value 0 represents an unknown value.

          Note: When this value is modified, the CPE could modify the {{param}}
          for this M2M Device in other Area Networks.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The sleep status of the device.

          Enumeration of:

          {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="ASLEEP"/>
            <enumeration value="AWAKE"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Active" access="readOnly">
        <description>
          Whether or not this M2M Device is currently attached to this
          {{object|##.SCL}} instance.

          The ability to list inactive M2M Devices is OPTIONAL. If the CPE
          includes inactive M2MDevices in this table, {{param}} is set to
          {{false}} for each inactive M2M Device. The length of time an
          inactive M2M Device remains listed in this table is a local matter to
          the CPE.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="PropertyNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.Property.{i}."
        access="readOnly" numEntriesParameter="PropertyNumberOfEntries"
        minEntries="0" maxEntries="unbounded" dmr:noUniqueKeys="true"
        version="2.6">
      <description>
        This object contains an instance of a property extension (name value
        pair) for this {{object|##.AreaNwkDeviceInfoInstance}} instance.

        For example, if the {{param|##.AreaNwkInstance.{i}.AreaNwkType}} value
        is ZigBee, this {{object|##.AreaNwkDeviceInfoInstance}} contains
        ZigBee-specific parameters that are not formally modeled for this
        {{object|##.AreaNwkDeviceInfoInstance}} instance.
      </description>

      <parameter name="Name" access="readOnly">
        <description>
          The name of the property
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="Value" access="readOnly">
        <description>
          The value of the property.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.STOMP." access="readOnly" minEntries="1"
        maxEntries="1" version="2.15">
      <description>
        The {{object}} represents the STOMP capabilities of the device as
        described in {{bibref|TR-369}}.
      </description>

      <parameter name="ConnectionNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.STOMP.Connection.{i}." access="readWrite"
        minEntries="0" maxEntries="unbounded" enableParameter="Enable"
        numEntriesParameter="ConnectionNumberOfEntries" version="2.15">
      <description>
        The {{object}} represents a STOMP connection between the Agent and a
        STOMP server.
      </description>
      <uniqueKey functional="true">
        <parameter ref="Host"/>
        <parameter ref="Username"/>
        <parameter ref="VirtualHost"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.15">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables this {{object}}.

          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 this {{object}} (see
          {{bibref|TR-181i2|Section 4.2.2}}). {{enum}}

          When {{param|Enable}} is {{false}} then {{param}} SHOULD normally be
          {{enum|Disabled}} 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|Enabled}} if and only if the interface is able to
          transmit and receive PDUs; it SHOULD change to {{enum|Unknown}} if
          the state of the interface can not be determined for some reason.
        </description>
        <syntax>
          <string>
            <enumeration value="Enabled"/>
            <enumeration value="Disabled"/>
            <enumeration value="Unknown"/>
            <enumeration value="Connecting"/>
            <enumeration value="ServerNotPresent"/>
            <enumeration value="Error_Misconfigured"/>
            <enumeration value="Error_AuthenticationFailure"/>
            <enumeration value="Error" optional="true"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChangeDate" access="readOnly">
        <description>
          The date and time at which this {{object}} entered into its current
          operational state.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="Host" access="readWrite">
        <description>
          The hostname or IP Address of the STOMP Server.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Port" access="readWrite">
        <description>
          The port number of the STOMP Server.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="65535"/>
          </unsignedInt>
          <default type="object" value="61613"/>
        </syntax>
      </parameter>

      <parameter name="Username" access="readWrite">
        <description>
          The username part of the credentials to be used when authenticating
          this {{object}} during connection establishment with the STOMP
          Server.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Password" access="readWrite">
        <description>
          The password part of the credentials to be used when authenticating
          this {{object}} during connection establishment with the STOMP
          Server.
        </description>
        <syntax secured="true">
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="VirtualHost" access="readWrite">
        <description>
          The Virtual Host to use when establishing the connection.

          Some STOMP Server implementations utilize virtual hosts to place a
          context around credentials, permissions, and internal resources.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="EnableHeartbeats" access="readWrite">
        <description>
          Enable or disable the STOMP Heart-beating mechanism as described in
          STOMP (for this {{object}}).

          When the STOMP Heart-beat mechanism is enabled,
          {{param|OutgoingHeartbeat}} and {{param|IncomingHeartbeat}} determine
          how the heart-beat header within the CONNECT frame is formatted.

          When the STOMP Heart-beat mechanism is disabled,
          {{param|OutgoingHeartbeat}} and {{param|IncomingHeartbeat}} are
          ignored and the CONNECT frame MUST NOT contain a heart-beat header
          element.

          Any changes to this parameter will not take effect until the next
          connection.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="OutgoingHeartbeat" access="readWrite">
        <description>
          Represents the Outgoing heart-beat timing (in {{units}}) of the STOMP
          Heart-beating mechanism as described in STOMP (for this {{object}}).

          The Outgoing heart-beat represents what the sender of the frame can
          do. A value of 0 means that it cannot send heart-beats.

          Any changes to this parameter will not take effect until the next
          connection.
        </description>
        <syntax>
          <unsignedInt>
            <units value="milliseconds"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="IncomingHeartbeat" access="readWrite">
        <description>
          Represents the Incoming heart-beat timing (in {{units}}) of the STOMP
          Heart-beating mechanism as described in STOMP (for this {{object}}).

          The Incoming heart-beat represents what the sender of the frame would
          like to get. A value of 0 means that it does not want to receive
          heart-beats.

          Any changes to this parameter will not take effect until the next
          connection.
        </description>
        <syntax>
          <unsignedInt>
            <units value="milliseconds"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="ServerRetryInitialInterval" access="readWrite">
        <description>
          The maximum first reconnection wait interval, in {{units}}, as
          specified in {{bibref|TR-369}}.

          The Device MUST use a random value between ''0'' and {{param}} as the
          first reconnection wait interval.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="65535"/>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="60"/>
        </syntax>
      </parameter>

      <parameter name="ServerRetryIntervalMultiplier" access="readWrite">
        <description>
          The reconnection interval multiplier as specified in
          {{bibref|TR-369}}. This value is expressed in units of 0.001. Hence
          the values of the multiplier range between 1.000 and 65.535.

          For the ''n''th reconnection wait interval, the Device MUST use a
          random value, in ''seconds'', between ''0'' and
          {{param|ServerRetryInitialInterval}} * ({{param}} / 1000) ** (''n'' -
          ''1'').

          The server retry mechanism reaches its upper limit at 10 reconnection
          attempts. Meaning, that if the number of reconnection attempts
          exceeds 10, then the Device MUST use a random value, in seconds,
          between 0 and ServerRetryInitialInterval *
          (ServerRetryIntervalMultiplier / 1000) ** (10 - 1).
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1000" maxInclusive="65535"/>
          </unsignedInt>
          <default type="object" value="2000"/>
        </syntax>
      </parameter>

      <parameter name="ServerRetryMaxInterval" access="readWrite">
        <description>
          The maximum reconnection wait interval, in {{units}}.

          If the ''n''th reconnection wait interval calculated from
          {{param|ServerRetryInitialInterval}} and
          {{param|ServerRetryIntervalMultiplier}} exceeds the value of this
          parameter, then the Agent MUST use the value of this parameter as the
          next reconnection wait interval.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="30720"/>
        </syntax>
      </parameter>

      <parameter name="IsEncrypted" status="deleted" access="readOnly">
        <description>
          This parameter represents whether or not communications that utilize
          this {{object}} object instance are encrypted.

          {{deprecated|2.14|because the {{param|EnableEncryption}} parameter
          will dictate whether all connections for this STOMP instance are or
          are not encrypted}}

          {{obsoleted|2.16}}

          {{deleted|2.17}}
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="EnableEncryption" access="readWrite" version="2.15">
        <description>
          When {{true}}, encryption MUST be used for this STOMP Connection
          {{object}}.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="true"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.CollectionDevice.{i}." access="readOnly"
        minEntries="0" maxEntries="unbounded"
        numEntriesParameter="CollectionDeviceNumberOfEntries" version="2.19">
      <description>
        A {{object}} is a device in the network that is represented in the
        {{object|#}} data model in multiple places. An instance of {{object}}
        represents a physical device that is modeled via a set of data model
        objects that are distributed throughout the data model, and brings them
        together into a single Data Model Object. For example an entry with a
        {{object|#.WiFi.DataElements.Network.Device}} and a
        {{object|#.IEEE1905.AL.NetworkTopology.IEEE1905Device}} is the same
        device represented in two places.

        When the entry with {{param|IsNativeDevice}} is {{true}}, that entry
        will represent the Native Device which is modeled by the Root Object
        {{object|#}}.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" version="2.19">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="_AliasCWMP"/>
        </syntax>
      </parameter>

      <parameter name="IsNativeDevice" access="readOnly">
        <description>
          If {{true}} this {{object}} models the top level {{object|#}} only
          one instance can represent the top-level device. If {{false}} this
          {{object}} represents another device in the network.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="DataElementsDeviceRef" access="readOnly">
        <description>
          {{reference|the {{object|#.WiFi.DataElements.Network.Device}}
          instance corresponding to this {{object}}, or {{empty}} if this
          {{object}} is not represented in the
          {{object|#.WiFi.DataElements.Network.Device}} table}}
        </description>
        <syntax>
          <string>
            <pathRef refType="strong"
                targetParent=".WiFi.DataElements.Network.Device."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="IEEE1905DeviceRef" access="readOnly">
        <description>
          {{reference|the
          {{object|#.IEEE1905.AL.NetworkTopology.IEEE1905Device}} instance
          corresponding to this {{object}}, or {{empty}} if this {{object}} is
          not represented in the
          {{object|#.IEEE1905.AL.NetworkTopology.IEEE1905Device}} table}}
        </description>
        <syntax>
          <string>
            <pathRef refType="strong"
                targetParent=".IEEE1905.AL.NetworkTopology.IEEE1905Device."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LLDPDeviceRef" access="readOnly">
        <description>
          {{reference|the {{object|#.LLDP.Discovery.Device}} instance
          corresponding to this {{object}}, or {{empty}} if this {{object}} is
          not represented in the {{object|#.LLDP.Discovery.Device}} table}}
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent=".LLDP.Discovery.Device."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="UPnPDeviceRef" access="readOnly">
        <description>
          {{reference|the {{object|#.UPnP.Discovery.Device}} instance
          corresponding to this {{object}}, or {{empty}} if this {{object}} is
          not represented in the {{object|#.UPnP.Discovery.Device}} table}}
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetParent=".UPnP.Discovery.Device."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="HostDeviceRef" access="readOnly">
        <description>
          {{reference|the {{object|#.Hosts.Host}} instance corresponding to
          this {{object}}, or {{empty}} if this {{object}} is not represented
          in the {{object|#.Hosts.Host}} table}}
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetParent=".Hosts.Host."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="GhnAssociatedDeviceRef" access="readOnly">
        <description>
          {{reference|the {{object|#.Ghn.Interface.{i}.AssociatedDevice}}
          instance corresponding to this {{object}}, or {{empty}} if this
          {{object}} is not represented in the
          {{object|#.Ghn.Interface.{i}.AssociatedDevice}} table}}
        </description>
        <syntax>
          <string>
            <pathRef refType="strong"
                targetParent=".Ghn.Interface.{i}.AssociatedDevice."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="MoCAAssociatedDeviceRef" access="readOnly">
        <description>
          {{reference|the {{object|#.MoCA.Interface.{i}.AssociatedDevice}}
          instance corresponding to this {{object}}, or {{empty}} if this
          {{object}} is not represented in the
          {{object|#.MoCA.Interface.{i}.AssociatedDevice}} table}}
        </description>
        <syntax>
          <string>
            <pathRef refType="strong"
                targetParent=".MoCA.Interface.{i}.AssociatedDevice."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="HomePlugAssociatedDeviceRef" access="readOnly">
        <description>
          {{reference|the {{object|#.HomePlug.Interface.{i}.AssociatedDevice}}
          instance corresponding to this {{object}}, or {{empty}} if this
          {{object}} is not represented in the
          {{object|#.HomePlug.Interface.{i}.AssociatedDevice}} table}}
        </description>
        <syntax>
          <string>
            <pathRef refType="strong"
                targetParent=".HomePlug.Interface.{i}.AssociatedDevice."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="HPNAAssociatedDeviceRef" access="readOnly">
        <description>
          {{reference|the {{object|#.HPNA.Interface.{i}.AssociatedDevice}}
          instance corresponding to this {{object}}, or {{empty}} if this
          {{object}} is not represented in the
          {{object|#.HPNA.Interface.{i}.AssociatedDevice}} table}}
        </description>
        <syntax>
          <string>
            <pathRef refType="strong"
                targetParent=".HPNA.Interface.{i}.AssociatedDevice."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="UPAAssociatedDeviceRef" access="readOnly">
        <description>
          {{reference|the {{object|#.UPA.Interface.{i}.AssociatedDevice}}
          instance corresponding to this {{object}}, or {{empty}} if this
          {{object}} is not represented in the
          {{object|#.UPA.Interface.{i}.AssociatedDevice}} table}}
        </description>
        <syntax>
          <string>
            <pathRef refType="strong"
                targetParent=".UPA.Interface.{i}.AssociatedDevice."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="WiFiAssociatedDeviceRef" access="readOnly">
        <description>
          {{reference|the {{object|#.WiFi.AccessPoint.{i}.AssociatedDevice}}
          instance corresponding to this {{object}}, or {{empty}} if this
          {{object}} is not represented in the
          {{object|#.WiFi.AccessPoint.{i}.AssociatedDevice}} table}}
        </description>
        <syntax>
          <string>
            <pathRef refType="strong"
                targetParent=".WiFi.AccessPoint.{i}.AssociatedDevice."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ZigBeeAssociatedDeviceRef" access="readOnly">
        <description>
          {{reference|the {{object|#.ZigBee.Interface.{i}.AssociatedDevice}}
          instance corresponding to this {{object}}, or {{empty}} if this
          {{object}} is not represented in the
          {{object|#.ZigBee.Interface.{i}.AssociatedDevice}} table}}
        </description>
        <syntax>
          <string>
            <pathRef refType="strong"
                targetParent=".ZigBee.Interface.{i}.AssociatedDevice."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ThreadAssociatedNodeRef" access="readOnly"
          version="2.19">
        <description>
          {{reference|the {{object|#.Thread.MLE.{i}.AssociatedNode}} instance
          corresponding to this {{object}}, or {{empty}} if this {{object}} is
          not represented in the {{object|#.Thread.MLE.{i}.AssociatedNode}}
          table}}
        </description>
        <syntax>
          <string>
            <pathRef refType="strong"
                targetParent=".Thread.MLE.{i}.AssociatedNode." targetType="row"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <profile name="IPLayerCapacity:1" dmr:previousProfile="" version="2.14"
        status="deleted">
      <object ref="Device.IP.Diagnostics." requirement="present">
        <parameter ref="IPLayerCapacitySupported" requirement="readOnly"/>
      </object>
      <object ref="Device.IP.Diagnostics.IPLayerCapacityMetrics."
          requirement="present">
        <parameter ref="DiagnosticsState" requirement="readWrite"/>
        <parameter ref="IPLayerMaxConnections" requirement="readOnly"/>
        <parameter ref="IPLayerMaxIncrementalResult" requirement="readOnly"/>
        <parameter ref="IPLayerCapSupportedMetrics" requirement="readOnly"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="Role" requirement="readWrite"/>
        <parameter ref="Host" requirement="readOnly" status="deleted"/>
        <parameter ref="Port" requirement="readOnly" status="deleted"/>
        <parameter ref="JumboFramesPermitted" requirement="readOnly"/>
        <parameter ref="NumberOfConnections" requirement="readOnly"
            status="deleted"/>
        <parameter ref="EthernetPriority" requirement="readWrite"/>
        <parameter ref="DSCP" requirement="readWrite"/>
        <parameter ref="ProtocolVersion" requirement="readWrite"/>
        <parameter ref="UDPPayloadMin" requirement="readWrite"/>
        <parameter ref="UDPPayloadMax" requirement="readWrite"/>
        <parameter ref="PortMin" requirement="readWrite"/>
        <parameter ref="PortMax" requirement="readWrite"/>
        <parameter ref="TestType" requirement="readWrite"/>
        <parameter ref="PreambleDuration" requirement="readWrite"/>
        <parameter ref="StartSendingRate" requirement="readWrite"/>
        <parameter ref="NumberTestSubIntervals" requirement="readWrite"/>
        <parameter ref="TestSubInterval" requirement="readWrite"/>
        <parameter ref="StatusFeedbackInterval" requirement="readWrite"/>
        <parameter ref="TimeoutNoTraffic" requirement="readWrite"
            status="deleted"/>
        <parameter ref="Tmax" requirement="readOnly"/>
        <parameter ref="TmaxRTT" requirement="readWrite"/>
        <parameter ref="TimestampResolution" requirement="readWrite"/>
        <parameter ref="LowerThresh" requirement="readWrite"/>
        <parameter ref="UpperThresh" requirement="readWrite"/>
        <parameter ref="HighSpeedDelta" requirement="readWrite"/>
        <parameter ref="SlowAdjThresh" requirement="readWrite"/>
        <parameter ref="HSpeedThresh" requirement="readWrite"/>
        <parameter ref="BOMTime" requirement="readOnly"/>
        <parameter ref="EOMTime" requirement="readOnly"/>
        <parameter ref="TestInterval" requirement="readOnly"/>
        <parameter ref="MaxIPLayerCapacity" requirement="readOnly"/>
        <parameter ref="TimeOfMax" requirement="readOnly"/>
        <parameter ref="LossRatioAtMax" requirement="readOnly"/>
        <parameter ref="RTTRangeAtMax" requirement="readOnly"/>
        <parameter ref="PDVRangeAtMax" requirement="readOnly"/>
        <parameter ref="MinOnewayDelayAtMax" requirement="readOnly"/>
        <parameter ref="ReorderedRatioAtMax" requirement="readOnly"/>
        <parameter ref="IncrementalResultNumberOfEntries"
            requirement="readOnly"/>
      </object>
      <object
          ref="Device.IP.Diagnostics.IPLayerCapacityMetrics.IncrementalResult.{i}."
          requirement="present">
        <parameter ref="IPLayerCapacity" requirement="readOnly"/>
        <parameter ref="TimeOfSubInterval" requirement="readOnly"/>
        <parameter ref="LossRatio" requirement="readOnly"/>
        <parameter ref="RTTRange" requirement="readOnly"/>
        <parameter ref="PDVRange" requirement="readOnly"/>
        <parameter ref="MinOnewayDelay" requirement="readOnly"/>
        <parameter ref="ReorderedRatio" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="IPLayerCapacityTest:1"
        dmr:previousProfile="IPLayerCapacity:1" version="2.15"
        status="obsoleted">
      <object ref="Device.IP.Diagnostics." requirement="present">
        <parameter ref="IPLayerCapacitySupported" requirement="readOnly"/>
      </object>
      <object ref="Device.IP.Diagnostics.IPLayerCapacityMetrics."
          requirement="present">
        <parameter ref="DiagnosticsState" requirement="readWrite"/>
        <parameter ref="IPLayerCapSupportedSoftwareVersion"
            requirement="readOnly"/>
        <parameter ref="IPLayerCapSupportedControlProtocolVersion"
            requirement="readOnly"/>
        <parameter ref="IPLayerCapSupportedMetrics" requirement="readOnly"/>
        <parameter ref="Role" requirement="readWrite"/>
        <parameter ref="Host" requirement="readOnly" status="obsoleted"/>
        <parameter ref="JumboFramesPermitted" requirement="readOnly"/>
        <parameter ref="DSCP" requirement="readWrite"/>
        <parameter ref="TestType" requirement="readWrite"/>
        <parameter ref="IPDVEnable" requirement="readWrite"/>
        <parameter ref="TestSubInterval" requirement="readWrite"/>
        <parameter ref="StatusFeedbackInterval" requirement="readWrite"/>
        <parameter ref="SeqErrThresh" requirement="readWrite"/>
        <parameter ref="ReordDupIgnoreEnable" requirement="readOnly"/>
        <parameter ref="LowerThresh" requirement="readWrite"/>
        <parameter ref="UpperThresh" requirement="readWrite"/>
        <parameter ref="HighSpeedDelta" requirement="readWrite"/>
        <parameter ref="SlowAdjThresh" requirement="readWrite"/>
        <parameter ref="MaxIPLayerCapacity" requirement="readOnly"/>
        <parameter ref="TimeOfMax" requirement="readOnly"/>
        <parameter ref="MaxETHCapacityNoFCS" requirement="readOnly"/>
        <parameter ref="MaxETHCapacityWithFCS" requirement="readOnly"/>
        <parameter ref="MaxETHCapacityWithFCSVLAN" requirement="readOnly"/>
        <parameter ref="LossRatioAtMax" requirement="readOnly"/>
        <parameter ref="RTTRangeAtMax" requirement="readOnly"/>
        <parameter ref="PDVRangeAtMax" requirement="readOnly"/>
        <parameter ref="IPLayerCapacitySummary" requirement="readOnly"/>
        <parameter ref="LossRatioSummary" requirement="readOnly"/>
        <parameter ref="MinRTTSummary" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="Download:1" version="2.0" dmr:previousProfile="">
      <object ref="Device.IP.Diagnostics." requirement="present">
        <parameter ref="IPv4DownloadDiagnosticsSupported"
            requirement="readOnly"/>
        <parameter ref="IPv6DownloadDiagnosticsSupported"
            requirement="readOnly"/>
      </object>
      <object ref="Device.IP.Diagnostics.DownloadDiagnostics."
          requirement="present">
        <parameter ref="DiagnosticsState" requirement="readWrite"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="DownloadURL" requirement="readWrite"/>
        <parameter ref="DownloadTransports" requirement="readOnly"/>
        <parameter ref="DSCP" requirement="readWrite"/>
        <parameter ref="EthernetPriority" requirement="readWrite"/>
        <parameter ref="ROMTime" requirement="readOnly"/>
        <parameter ref="BOMTime" requirement="readOnly"/>
        <parameter ref="EOMTime" requirement="readOnly"/>
        <parameter ref="TestBytesReceived" requirement="readOnly"/>
        <parameter ref="TotalBytesReceived" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="PacketCaptureDiagnostics:1" dmr:previousProfile=""
        version="2.13">
      <object ref="Device.PacketCaptureDiagnostics." requirement="present">
        <parameter ref="DiagnosticsState" requirement="readWrite"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="Duration" requirement="readWrite"/>
        <parameter ref="FileTarget" requirement="readWrite"/>
      </object>
      <object ref="Device.PacketCaptureDiagnostics.PacketCaptureResult.{i}."
          requirement="present">
        <parameter ref="FileLocation" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="MemoryStatus:1" version="2.0">
      <object ref="Device.DeviceInfo.MemoryStatus." requirement="present">
        <parameter ref="Total" requirement="readOnly"/>
        <parameter ref="Free" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="ProcessStatus:1" version="2.0">
      <object ref="Device.DeviceInfo.ProcessStatus." requirement="present">
        <parameter ref="CPUUsage" requirement="readOnly"/>
        <parameter ref="ProcessNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.DeviceInfo.ProcessStatus.Process.{i}."
          requirement="present">
        <parameter ref="PID" requirement="readOnly"/>
        <parameter ref="Command" requirement="readOnly"/>
        <parameter ref="Size" requirement="readOnly"/>
        <parameter ref="Priority" requirement="readOnly"/>
        <parameter ref="CPUTime" requirement="readOnly"/>
        <parameter ref="State" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="TempStatus:1" version="2.0">
      <object ref="Device.DeviceInfo.TemperatureStatus." requirement="present">
        <parameter ref="TemperatureSensorNumberOfEntries"
            requirement="readOnly"/>
      </object>
      <object ref="Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}."
          requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="ResetTime" requirement="readOnly"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="Value" requirement="readOnly"/>
        <parameter ref="LastUpdate" requirement="readOnly"/>
        <parameter ref="MinValue" requirement="readOnly"/>
        <parameter ref="MinTime" requirement="readOnly"/>
        <parameter ref="MaxValue" requirement="readOnly"/>
        <parameter ref="MaxTime" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="TempStatusAdv:1" extends="TempStatus:1" version="2.0"
        dmr:previousProfile="TempStatus:1">
      <object ref="Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}."
          requirement="present">
        <parameter ref="Reset" requirement="readWrite"/>
        <parameter ref="LowAlarmValue" requirement="readWrite"/>
        <parameter ref="LowAlarmTime" requirement="readOnly"/>
        <parameter ref="HighAlarmValue" requirement="readWrite"/>
        <parameter ref="HighAlarmTime" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="TempStatusAdv:2" base="TempStatusAdv:1"
        dmr:previousProfile="TempStatusAdv:1" version="2.1">
      <object ref="Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}."
          requirement="present">
        <parameter ref="PollingInterval" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="Processors:1" version="2.1" status="deprecated">
      <object ref="Device.DeviceInfo.Processor.{i}." requirement="present">
        <parameter ref="Architecture" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="VendorLogFiles:1" version="2.1">
      <object ref="Device.DeviceInfo.VendorLogFile.{i}." requirement="present">
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="MaximumSize" requirement="readOnly"/>
        <parameter ref="Persistent" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="DUStateChngComplPolicy:1"
        dmr:previousProfile="VendorLogFiles:1" version="2.1">
      <object ref="Device.ManagementServer.DUStateChangeComplPolicy."
          requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="OperationTypeFilter" requirement="readWrite"/>
        <parameter ref="ResultTypeFilter" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="Location:1" version="2.4">
      <object ref="Device.DeviceInfo." requirement="present">
        <parameter ref="LocationNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.DeviceInfo.Location.{i}." requirement="createDelete">
        <parameter ref="Source" requirement="readOnly"/>
        <parameter ref="AcquiredTime" requirement="readOnly"/>
        <parameter ref="ExternalSource" requirement="readOnly"/>
        <parameter ref="ExternalProtocol" requirement="readOnly"/>
        <parameter ref="DataObject" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="DeviceImage:1" version="2.11">
      <object ref="Device.DeviceInfo." requirement="present">
        <parameter ref="DeviceImageNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.DeviceInfo.DeviceImageFile.{i}."
          requirement="present">
        <parameter ref="Location" requirement="readOnly"/>
        <parameter ref="Image" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="Time:1" version="2.0" status="deleted">
      <object ref="Device.Time." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="NTPServer1" requirement="readWrite" status="deleted"/>
        <parameter ref="NTPServer2" requirement="readWrite" status="deleted"/>
        <parameter ref="CurrentLocalTime" requirement="readOnly"/>
        <parameter ref="LocalTimeZone" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="Time:2" version="2.16">
      <object ref="Device.Time." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="CurrentLocalTime" requirement="readOnly"/>
        <parameter ref="LocalTimeZone" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="UserInformationBasic:1" version="2.11">
      <object ref="Device.UserInterface.Messages." requirement="present">
        <parameter ref="Title" requirement="readWrite"/>
        <parameter ref="SubTitle" requirement="readWrite"/>
        <parameter ref="Text" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="UserInformationExtended:1" version="2.11">
      <object ref="Device.UserInterface.Messages." requirement="present">
        <parameter ref="Title" requirement="readWrite"/>
        <parameter ref="SubTitle" requirement="readWrite"/>
        <parameter ref="Text" requirement="readWrite"/>
        <parameter ref="IconType" requirement="readWrite"/>
        <parameter ref="MessageColor" requirement="readWrite"/>
        <parameter ref="BackgroundColor" requirement="readWrite"/>
        <parameter ref="TitleColor" requirement="readWrite"/>
        <parameter ref="SubTitleColor" requirement="readWrite"/>
        <parameter ref="RequestedNumberOfRepetitions" requirement="readWrite"/>
        <parameter ref="ExecutedNumberOfRepetitions" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="SFP:1" version="2.19">
      <object ref="Device.SFPs." requirement="present">
        <parameter ref="SFPCageNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.SFPs.SFPCage.{i}." requirement="present">
        <parameter ref="Alias" requirement="readOnly"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="SFPPresent" requirement="readOnly"/>
        <parameter ref="SFF8024Identifier" requirement="readOnly"/>
        <parameter ref="MgmtInterface" requirement="readOnly"/>
        <parameter ref="SFPType" requirement="readOnly"/>
        <parameter ref="SFPReference" requirement="readOnly"/>
      </object>
      <object ref="Device.SFPs.Mgmt." requirement="present">
        <parameter ref="SFF8472NumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.SFPs.Mgmt.SFF8472.{i}." requirement="present">
        <parameter ref="Alias" requirement="readOnly"/>
        <parameter ref="Name" requirement="readOnly"/>
      </object>
      <object ref="Device.SFPs.Mgmt.SFF8472.{i}.Transceiver."
          requirement="present">
        <parameter ref="Connector" requirement="readOnly"/>
        <parameter ref="Transceiver" requirement="readOnly"/>
        <parameter ref="Encoding" requirement="readOnly"/>
        <parameter ref="BRNominal" requirement="readOnly"/>
        <parameter ref="RateIdentifier" requirement="readOnly"/>
        <parameter ref="VendorName" requirement="readOnly"/>
        <parameter ref="VendorOUI" requirement="readOnly"/>
        <parameter ref="VendorPN" requirement="readOnly"/>
        <parameter ref="VendorRev" requirement="readOnly"/>
        <parameter ref="BRMax" requirement="readOnly"/>
        <parameter ref="BRMin" requirement="readOnly"/>
        <parameter ref="VendorSN" requirement="readOnly"/>
        <parameter ref="DateCode" requirement="readOnly"/>
        <parameter ref="LengthSMFkm" requirement="readOnly"/>
        <parameter ref="LengthSMF" requirement="readOnly"/>
        <parameter ref="LengthOM2" requirement="readOnly"/>
        <parameter ref="LengthOM1" requirement="readOnly"/>
        <parameter ref="LengthOM3" requirement="readOnly"/>
        <parameter ref="Wavelength" requirement="readOnly"/>
        <parameter ref="VerCompliance" requirement="readOnly"/>
        <parameter ref="OptCooledTrans" requirement="readOnly"/>
        <parameter ref="OptPowerlvl" requirement="readOnly"/>
        <parameter ref="OptLinearRcvr" requirement="readOnly"/>
        <parameter ref="OptRateSelect" requirement="readOnly"/>
        <parameter ref="OptTxDisable" requirement="readOnly"/>
        <parameter ref="OptTxFault" requirement="readOnly"/>
        <parameter ref="OptInvertedLOS" requirement="readOnly"/>
        <parameter ref="OptLOS" requirement="readOnly"/>
        <parameter ref="DMCtypeImplemented" requirement="readOnly"/>
        <parameter ref="DMCtypeInternalCal" requirement="readOnly"/>
        <parameter ref="DMCtypeExternalCal" requirement="readOnly"/>
        <parameter ref="DMCtypeRxAvgPwr" requirement="readOnly"/>
        <parameter ref="EOCalarmsImplemented" requirement="readOnly"/>
        <parameter ref="EOCSoftTxDisable" requirement="readOnly"/>
        <parameter ref="EOCSoftTxFault" requirement="readOnly"/>
        <parameter ref="EOCSoftRxLOS" requirement="readOnly"/>
        <parameter ref="EOCSoftRateSelect" requirement="readOnly"/>
        <parameter ref="SFF8079AppSelect" requirement="readOnly"/>
        <parameter ref="SFF8431SoftRateSelect" requirement="readOnly"/>
        <parameter ref="EMCSPowerLvlOp" requirement="readOnly"/>
        <parameter ref="EMCSPowerLvlSelect" requirement="readOnly"/>
      </object>
      <object ref="Device.SFPs.Mgmt.SFF8472.{i}.Transceiver.Thresholds."
          requirement="present">
        <parameter ref="HighTempAlarm" requirement="readOnly"/>
        <parameter ref="HighTempWarning" requirement="readOnly"/>
        <parameter ref="LowTempWarning" requirement="readOnly"/>
        <parameter ref="LowTempAlarm" requirement="readOnly"/>
        <parameter ref="HighVccAlarm" requirement="readOnly"/>
        <parameter ref="HighVccWarning" requirement="readOnly"/>
        <parameter ref="LowVccWarning" requirement="readOnly"/>
        <parameter ref="LowVccAlarm" requirement="readOnly"/>
        <parameter ref="HighTxBiasAlarm" requirement="readOnly"/>
        <parameter ref="HighTxBiasWarning" requirement="readOnly"/>
        <parameter ref="LowTxBiasWarning" requirement="readOnly"/>
        <parameter ref="LowTxBiasAlarm" requirement="readOnly"/>
        <parameter ref="HighTxPowerAlarm" requirement="readOnly"/>
        <parameter ref="HighTxPowerWarning" requirement="readOnly"/>
        <parameter ref="LowTxPowerWarning" requirement="readOnly"/>
        <parameter ref="LowTxPowerAlarm" requirement="readOnly"/>
        <parameter ref="HighRxPowerAlarm" requirement="readOnly"/>
        <parameter ref="HighRxPowerWarning" requirement="readOnly"/>
        <parameter ref="LowRxPowerWarning" requirement="readOnly"/>
        <parameter ref="LowRxPowerAlarm" requirement="readOnly"/>
      </object>
      <object ref="Device.SFPs.Mgmt.SFF8472.{i}.Transceiver.Status."
          requirement="present">
        <parameter ref="TxDisableState" requirement="readOnly"/>
        <parameter ref="SoftTxDisableSelect" requirement="readOnly"/>
        <parameter ref="RS1State" requirement="readOnly"/>
        <parameter ref="RateSelectState" requirement="readOnly"/>
        <parameter ref="SoftRateSelectSelect" requirement="readOnly"/>
        <parameter ref="TXFaultState" requirement="readOnly"/>
        <parameter ref="RxLOSState" requirement="readOnly"/>
        <parameter ref="DataReadyBarState" requirement="readOnly"/>
        <parameter ref="Temperature" requirement="readOnly"/>
        <parameter ref="Vcc" requirement="readOnly"/>
        <parameter ref="TxBias" requirement="readOnly"/>
        <parameter ref="TxPower" requirement="readOnly"/>
        <parameter ref="RxPower" requirement="readOnly"/>
      </object>
      <object ref="Device.SFPs.Mgmt.SFF8472.{i}.Transceiver.Alarms."
          requirement="present">
        <parameter ref="TemperatureHigh" requirement="readOnly"/>
        <parameter ref="TemperatureLow" requirement="readOnly"/>
        <parameter ref="VccHigh" requirement="readOnly"/>
        <parameter ref="VccLow" requirement="readOnly"/>
        <parameter ref="TxBiasHigh" requirement="readOnly"/>
        <parameter ref="TxBiasLow" requirement="readOnly"/>
        <parameter ref="TxPowerHigh" requirement="readOnly"/>
        <parameter ref="TxPowerLow" requirement="readOnly"/>
        <parameter ref="RxPowerHigh" requirement="readOnly"/>
        <parameter ref="RxPowerLow" requirement="readOnly"/>
      </object>
      <object ref="Device.SFPs.Mgmt.SFF8472.{i}.Transceiver.Warnings."
          requirement="present">
        <parameter ref="TemperatureHigh" requirement="readOnly"/>
        <parameter ref="TemperatureLow" requirement="readOnly"/>
        <parameter ref="VccHigh" requirement="readOnly"/>
        <parameter ref="VccLow" requirement="readOnly"/>
        <parameter ref="TxBiasHigh" requirement="readOnly"/>
        <parameter ref="TxBiasLow" requirement="readOnly"/>
        <parameter ref="TxPowerHigh" requirement="readOnly"/>
        <parameter ref="TxPowerLow" requirement="readOnly"/>
        <parameter ref="RxPowerHigh" requirement="readOnly"/>
        <parameter ref="RxPowerLow" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="ADSL:1" version="2.0">
      <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="writeOnceReadOnly"/>
        <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="writeOnceReadOnly"/>
        <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" version="2.0" status="deleted">
      <description>
        Note: This profile is valid for G.992.3 and G.992.5 modems.

        {{deleted|2.15}}
      </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="writeOnceReadOnly"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="LastChange" requirement="readOnly"/>
        <parameter ref="Upstream" requirement="readOnly"/>
        <parameter ref="StandardsSupported" requirement="readOnly"
            status="deleted">
          <description>
            {{deleted|2.15}}
          </description>
        </parameter>
        <parameter ref="StandardUsed" requirement="readOnly" status="deleted">
          <description>
            {{deleted|2.15}}
          </description>
        </parameter>
        <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="writeOnceReadOnly"/>
        <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="ADSL2:2" base="ADSL2:1" version="2.8" status="deleted">
      <object ref="Device.DSL.Line.{i}." requirement="present">
        <parameter ref="XTSE" requirement="readOnly"/>
        <parameter ref="XTSUsed" requirement="readOnly"/>
      </object>
      <object ref="Device.DSL.Channel.{i}." requirement="present">
        <parameter ref="ACTNDR" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="ADSL2:3" version="2.15">
      <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="writeOnceReadOnly"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="LastChange" requirement="readOnly"/>
        <parameter ref="Upstream" requirement="readOnly"/>
        <parameter ref="XTSE" requirement="readOnly"/>
        <parameter ref="XTSUsed" 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="writeOnceReadOnly"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="LastChange" requirement="readOnly"/>
        <parameter ref="LinkEncapsulationSupported" requirement="readOnly"/>
        <parameter ref="LinkEncapsulationUsed" requirement="readOnly"/>
        <parameter ref="ACTNDR" 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" version="2.0" status="deleted">
      <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="writeOnceReadOnly"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="LastChange" requirement="readOnly"/>
        <parameter ref="Upstream" requirement="readOnly"/>
        <parameter ref="StandardsSupported" requirement="readOnly"
            status="deleted">
          <description>
            {{deleted|2.15}}
          </description>
        </parameter>
        <parameter ref="StandardUsed" requirement="readOnly" status="deleted">
          <description>
            {{deleted|2.15}}
          </description>
        </parameter>
        <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="writeOnceReadOnly"/>
        <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:2" base="VDSL2:1" version="2.8" status="deleted">
      <object ref="Device.DSL.Line.{i}." requirement="present">
        <parameter ref="XTSE" requirement="readOnly"/>
        <parameter ref="XTSUsed" requirement="readOnly"/>
        <parameter ref="UPBOKLEPb" requirement="readOnly"/>
        <parameter ref="UPBOKLERPb" requirement="readOnly"/>
        <parameter ref="ACTRAMODEds" requirement="readOnly"/>
        <parameter ref="ACTRAMODEus" requirement="readOnly"/>
        <parameter ref="ACTINPROCds" requirement="readOnly"/>
        <parameter ref="ACTINPROCus" requirement="readOnly"/>
        <parameter ref="SNRMROCds" requirement="readOnly"/>
        <parameter ref="SNRMROCus" requirement="readOnly"/>
      </object>
      <object ref="Device.DSL.Channel.{i}." requirement="present">
        <parameter ref="ACTNDR" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="VDSL2:3" base="VDSL2:2" version="2.12" status="deleted">
      <object ref="Device.DSL.Line.{i}." requirement="present">
        <parameter ref="UpstreamAttenuation" requirement="readOnly"
            status="deleted">
          <description>
            {{deleted|2.12|because it doesn't apply to VDSL2}}
          </description>
        </parameter>
        <parameter ref="DownstreamAttenuation" requirement="readOnly"
            status="deleted">
          <description>
            {{deleted|2.12|because it doesn't apply to VDSL2}}
          </description>
        </parameter>
      </object>
    </profile>

    <profile name="VDSL2:4" version="2.15">
      <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="writeOnceReadOnly"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="LastChange" requirement="readOnly"/>
        <parameter ref="Upstream" requirement="readOnly"/>
        <parameter ref="XTSE" requirement="readOnly"/>
        <parameter ref="XTSUsed" requirement="readOnly"/>
        <parameter ref="AllowedProfiles" requirement="readOnly"/>
        <parameter ref="CurrentProfile" requirement="readOnly"/>
        <parameter ref="UPBOKLE" requirement="readOnly"/>
        <parameter ref="UPBOKLEPb" requirement="readOnly"/>
        <parameter ref="UPBOKLERPb" 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="ACTRAMODEds" requirement="readOnly"/>
        <parameter ref="ACTRAMODEus" requirement="readOnly"/>
        <parameter ref="ACTINPROCds" requirement="readOnly"/>
        <parameter ref="ACTINPROCus" requirement="readOnly"/>
        <parameter ref="SNRMpbds" requirement="readOnly"/>
        <parameter ref="SNRMpbus" requirement="readOnly"/>
        <parameter ref="SNRMROCds" requirement="readOnly"/>
        <parameter ref="SNRMROCus" 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="writeOnceReadOnly"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="LastChange" requirement="readOnly"/>
        <parameter ref="LinkEncapsulationSupported" requirement="readOnly"/>
        <parameter ref="LinkEncapsulationUsed" requirement="readOnly"/>
        <parameter ref="ACTNDR" 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" version="2.0">
      <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="writeOnceReadOnly"/>
        <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="FAST:1" version="2.11">
      <description>
        Note: This profile is valid for G.9701 modems.
      </description>
      <object ref="Device.FAST." requirement="present">
        <parameter ref="LineNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.FAST.Line.{i}." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Alias" requirement="writeOnceReadOnly"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="LastChange" requirement="readOnly"/>
        <parameter ref="Upstream" 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="SNRMRMCds" requirement="readOnly"/>
        <parameter ref="SNRMRMCus" requirement="readOnly"/>
        <parameter ref="FEXTCANCELds" requirement="readOnly"/>
        <parameter ref="FEXTCANCELus" requirement="readOnly"/>
        <parameter ref="ETRds" requirement="readOnly"/>
        <parameter ref="ETRus" requirement="readOnly"/>
        <parameter ref="ATTETRds" requirement="readOnly"/>
        <parameter ref="ATTETRus" requirement="readOnly"/>
        <parameter ref="MINEFTR" requirement="readOnly"/>
      </object>
      <object ref="Device.FAST.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.FAST.Line.{i}.TestParams." requirement="present">
        <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"/>
      </object>
    </profile>

    <profile name="Optical:1" version="2.4">
      <object ref="Device.Optical." requirement="present">
        <parameter ref="InterfaceNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.Optical.Interface.{i}." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Alias" requirement="writeOnceReadOnly"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="LastChange" requirement="readOnly"/>
        <parameter ref="Upstream" requirement="readOnly"/>
        <parameter ref="OpticalSignalLevel" requirement="readOnly"/>
        <parameter ref="TransmitOpticalLevel" requirement="readOnly"/>
      </object>
      <object ref="Device.Optical.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"/>
      </object>
    </profile>

    <profile name="OpticalSFP:1" extends="Optical:1" version="2.19">
      <object ref="Device.Optical.Interface.{i}." requirement="present">
        <parameter ref="SFPReferenceList" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="CellularInterfaceBase:1" version="2.8" status="deprecated">
      <object ref="Device.Cellular." requirement="present">
        <parameter ref="InterfaceNumberOfEntries" requirement="readOnly"/>
        <parameter ref="AccessPointNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.Cellular.Interface.{i}." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="NetworkInUse" requirement="readOnly"/>
        <parameter ref="CurrentAccessTechnology" requirement="readOnly"/>
      </object>
      <object ref="Device.Cellular.Interface.{i}.USIM." requirement="present"
          status="deprecated">
        <parameter ref="Status" requirement="readOnly" status="deprecated"/>
        <parameter ref="MSISDN" requirement="readOnly" status="deprecated"/>
      </object>
      <object ref="Device.Cellular.AccessPoint.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="APN" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="CellularInterfaceBase:2" version="2.19">
      <object ref="Device.Cellular." requirement="present">
        <parameter ref="InterfaceNumberOfEntries" requirement="readOnly"/>
        <parameter ref="AccessPointNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.Cellular.Interface.{i}." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="NetworkInUse" requirement="readOnly"/>
        <parameter ref="CurrentAccessTechnology" requirement="readOnly"/>
      </object>
      <object ref="Device.Cellular.AccessPoint.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="APN" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="CellularInterfaceExtended:1"
        extends="CellularInterfaceBase:1" version="2.8" status="deprecated">
      <object ref="Device.Cellular." requirement="present">
        <parameter ref="RoamingEnabled" requirement="readWrite"/>
        <parameter ref="RoamingStatus" requirement="readOnly"/>
      </object>
      <object ref="Device.Cellular.Interface.{i}." requirement="present">
        <parameter ref="Alias" requirement="writeOnceReadOnly"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="LastChange" requirement="readOnly"/>
        <parameter ref="IMEI" requirement="readOnly"/>
        <parameter ref="SupportedAccessTechnologies" requirement="readOnly"/>
        <parameter ref="PreferredAccessTechnology" requirement="readWrite"/>
        <parameter ref="NetworkRequested" requirement="readOnly"/>
        <parameter ref="AvailableNetworks" requirement="readOnly"/>
      </object>
      <object ref="Device.Cellular.Interface.{i}.USIM." requirement="present"
          status="deprecated">
        <parameter ref="IMSI" requirement="readOnly" status="deprecated"/>
        <parameter ref="ICCID" requirement="readOnly" status="deprecated"/>
      </object>
    </profile>

    <profile name="CellularInterfaceExtended:2"
        extends="CellularInterfaceBase:2" version="2.19">
      <object ref="Device.Cellular." requirement="present">
        <parameter ref="RoamingEnabled" requirement="readWrite"/>
        <parameter ref="RoamingStatus" requirement="readOnly"/>
      </object>
      <object ref="Device.Cellular.Interface.{i}." requirement="present">
        <parameter ref="Alias" requirement="writeOnceReadOnly"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="LastChange" requirement="readOnly"/>
        <parameter ref="IMEI" requirement="readOnly"/>
        <parameter ref="SupportedAccessTechnologies" requirement="readOnly"/>
        <parameter ref="PreferredAccessTechnology" requirement="readWrite"/>
        <parameter ref="NetworkRequested" requirement="readOnly"/>
        <parameter ref="AvailableNetworks" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="CellularInterfaceStats:1" version="2.8">
      <object ref="Device.Cellular.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"/>
      </object>
    </profile>

    <profile name="ATMLink:1" version="2.0">
      <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="writeOnceReadOnly"/>
        <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" version="2.0">
      <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="writeOnceReadOnly"/>
        <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="EthernetRMONStats:1" version="2.4">
      <object ref="Device.Ethernet." requirement="present">
        <parameter ref="RMONStatsNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.Ethernet.RMONStats.{i}." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Interface" requirement="readOnly"/>
        <parameter ref="Bytes" requirement="readOnly"/>
        <parameter ref="Packets" requirement="readOnly"/>
        <parameter ref="CRCErroredPackets" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="VLANTermination:1" version="2.0">
      <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="writeOnceReadOnly"/>
        <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" version="2.0">
      <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="writeOnceReadOnly"/>
        <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="EthernetInterface:1" version="2.0">
      <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="writeOnceReadOnly"/>
        <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="EthernetInterface:2" base="EthernetInterface:1"
        version="2.7">
      <object ref="Device.Ethernet.Interface.{i}." requirement="present">
        <parameter ref="CurrentBitRate" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="USBHostsBasic:1" version="2.0">
      <object ref="Device.USB.USBHosts." requirement="present">
        <parameter ref="HostNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.USB.USBHosts.Host.{i}." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="Type" requirement="readOnly"/>
        <parameter ref="USBVersion" requirement="readOnly"/>
        <parameter ref="DeviceNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.USB.USBHosts.Host.{i}.Device.{i}."
          requirement="present">
        <parameter ref="DeviceNumber" requirement="readOnly"/>
        <parameter ref="USBVersion" requirement="readOnly"/>
        <parameter ref="DeviceClass" requirement="readOnly"/>
        <parameter ref="DeviceSubClass" requirement="readOnly"/>
        <parameter ref="DeviceVersion" requirement="readOnly"/>
        <parameter ref="DeviceProtocol" requirement="readOnly"/>
        <parameter ref="ProductID" requirement="readOnly"/>
        <parameter ref="VendorID" requirement="readOnly"/>
        <parameter ref="Manufacturer" requirement="readOnly"/>
        <parameter ref="ProductClass" requirement="readOnly"/>
        <parameter ref="SerialNumber" requirement="readOnly"/>
        <parameter ref="Port" requirement="readOnly"/>
        <parameter ref="Rate" requirement="readOnly"/>
        <parameter ref="Parent" requirement="readOnly"/>
        <parameter ref="MaxChildren" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="USBHostsAdv:1" extends="USBHostsBasic:1" version="2.0"
        dmr:previousProfile="USBHostsBasic:1">
      <object ref="Device.USB.USBHosts.Host.{i}." requirement="present">
        <parameter ref="Reset" requirement="readWrite"/>
        <parameter ref="PowerManagementEnable" requirement="readWrite"/>
      </object>
      <object ref="Device.USB.USBHosts.Host.{i}.Device.{i}."
          requirement="present">
        <parameter ref="IsSuspended" requirement="readOnly"/>
        <parameter ref="IsSelfPowered" requirement="readOnly"/>
        <parameter ref="ConfigurationNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.USB.USBHosts.Host.{i}.Device.{i}.Configuration.{i}."
          requirement="present">
        <parameter ref="ConfigurationNumber" requirement="readOnly"/>
        <parameter ref="InterfaceNumberOfEntries" requirement="readOnly"/>
      </object>
      <object
          ref="Device.USB.USBHosts.Host.{i}.Device.{i}.Configuration.{i}.Interface.{i}."
          requirement="present">
        <parameter ref="InterfaceNumber" requirement="readOnly"/>
        <parameter ref="InterfaceClass" requirement="readOnly"/>
        <parameter ref="InterfaceSubClass" requirement="readOnly"/>
        <parameter ref="InterfaceProtocol" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="USBInterface:1" version="2.0">
      <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="writeOnceReadOnly"/>
        <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" version="2.0">
      <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="HPNA:1" version="2.0">
      <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="writeOnceReadOnly"/>
        <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="HPNAQoS:1" version="2.0" dmr:previousProfile="HPNA: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="HPNADiagnostics:1" version="2.0"
        dmr:previousProfile="HPNA: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="MoCA:1" version="2.0" status="obsoleted">
      <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="writeOnceReadOnly"/>
        <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"
            status="obsoleted"/>
        <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="MoCA_Status:1" version="2.17"
        id="mocaIfStatusGroup/1.3.6.1.4.1.31621.1.2.2.2.7">
      <description>
        Parameters to monitor the status of the MoCA interface.
      </description>
      <object ref="Device.MoCA." requirement="present">
        <parameter ref="InterfaceNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.MoCA.Interface.{i}." requirement="present">
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="LastChange" requirement="readOnly"/>
        <parameter ref="FirmwareVersion" requirement="readOnly"/>
        <parameter ref="HighestVersion" requirement="readOnly"/>
        <parameter ref="CurrentVersion" requirement="readOnly"/>
        <parameter ref="MACAddress" requirement="readOnly"/>
        <parameter ref="NodeID" requirement="readOnly"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="NumNodes" requirement="readOnly"/>
        <parameter ref="NetworkCoordinator" requirement="readOnly"/>
        <parameter ref="BackupNC" requirement="readOnly"/>
        <parameter ref="CurrentOperFreq" requirement="readOnly"/>
        <parameter ref="NetworkTabooMask" requirement="readOnly"/>
        <parameter ref="NodeTabooMask" requirement="readOnly"/>
        <parameter ref="SupportedBands" requirement="readOnly"/>
        <parameter ref="PacketAggregationCapability" requirement="readOnly"/>
        <parameter ref="TxBcastRate" requirement="readOnly"/>
        <parameter ref="NcVersion" requirement="readOnly"/>
        <parameter ref="LinkState" requirement="readOnly"/>
        <parameter ref="ConnectedNodesInfo" requirement="readOnly"/>
        <parameter ref="MgntEntityNetIePayloadRx" requirement="readOnly"/>
        <parameter ref="Moca25PhyCapable" requirement="readOnly"/>
        <parameter ref="MpsInitScanPayload" requirement="readOnly"/>
        <parameter ref="MpsState" requirement="readOnly"/>
        <parameter ref="NetworkNamePayload" requirement="readOnly"/>
        <parameter ref="PrivacyNc" requirement="readOnly"/>
        <parameter ref="PowerStateResp" requirement="readOnly"/>
        <parameter ref="PowerStateStatus" requirement="readOnly"/>
        <parameter ref="ConnectedNodesDropReason" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="MoCA_Stats:1" version="2.17"
        id="mocaIfStatsGroup/1.3.6.1.4.1.31621.1.2.2.2.9">
      <description>
        Parameters to monitor the packet statistics and the number of flows in
        the MoCA interface.
      </description>
      <object ref="Device.MoCA.Interface.{i}.Stats." requirement="present">
        <parameter ref="PacketsSent" requirement="readOnly"/>
        <parameter ref="PacketsReceived" requirement="readOnly"/>
      </object>
      <object ref="Device.MoCA.Interface.{i}.QoS." requirement="present">
        <parameter ref="EgressNumFlows" requirement="readOnly"/>
        <parameter ref="IngressNumFlows" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="MoCA_FlowStats:1" version="2.17"
        id="mocaIfFlowStatsGroup/1.3.6.1.4.1.31621.1.2.2.2.11">
      <description>
        Parameters to monitor the PQoS flow information of the MoCA interface.
      </description>
      <object ref="Device.MoCA.Interface.{i}.QoS." requirement="present">
        <parameter ref="FlowStatsNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.MoCA.Interface.{i}.QoS.FlowStats.{i}."
          requirement="present">
        <parameter ref="FlowID" requirement="readOnly"/>
        <parameter ref="PacketDA" requirement="readOnly"/>
        <parameter ref="MaxRate" requirement="readOnly"/>
        <parameter ref="MaxBurstSize" requirement="readOnly"/>
        <parameter ref="LeaseTime" requirement="readOnly"/>
        <parameter ref="Tag" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="MoCA_Node:1" version="2.17"
        id="mocaNodeGroup/1.3.6.1.4.1.31621.1.2.2.2.14">
      <description>
        Parameters to monitor the status of other MoCA Nodes in the MoCA
        network.
      </description>
      <object ref="Device.MoCA.Interface.{i}." requirement="present">
        <parameter ref="AssociatedDeviceNumberOfEntries"
            requirement="readOnly"/>
      </object>
      <object ref="Device.MoCA.Interface.{i}.AssociatedDevice.{i}."
          requirement="present">
        <parameter ref="HighestVersion" requirement="readOnly"/>
        <parameter ref="MACAddress" requirement="readOnly"/>
        <parameter ref="TxBcastRate" requirement="readOnly"/>
        <parameter ref="PreferredNC" requirement="readOnly"/>
        <parameter ref="BondingCapable" requirement="readOnly"/>
        <parameter ref="PacketAggregationCapability" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="MoCA_Mesh:1" version="2.17"
        id="mocaMeshGroup/1.3.6.1.4.1.31621.1.2.2.2.16">
      <object ref="Device.MoCA.Interface.{i}." requirement="present">
        <parameter ref="MeshNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.MoCA.Interface.{i}.Mesh.{i}." requirement="present">
        <description>
          Parameters to monitor the PHY rate of each link in the MoCA network.
        </description>
        <parameter ref="TxNodeIndex" requirement="readOnly"/>
        <parameter ref="RxNodeIndex" requirement="readOnly"/>
        <parameter ref="TxRate" requirement="readOnly"/>
        <parameter ref="TxRateNper" requirement="readOnly"/>
        <parameter ref="TxRateVlper" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="MoCA_AccessControl:1" version="2.17"
        id="mocaIfAccessOptionalGroup/1.3.6.1.4.1.31621.1.2.2.2.2">
      <description>
        Parameters to configure the MAC address access control list for the
        MoCA interface.
      </description>
      <object ref="Device.MoCA.Interface.{i}." requirement="present">
        <parameter ref="AccessControlNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.MoCA.Interface.{i}.AccessControl.{i}."
          requirement="present">
        <parameter ref="MACAddress" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="MoCA_Rlapm:1" version="2.17"
        id="mocaIfRlapmOptionalGroup/1.3.6.1.4.1.31621.1.2.2.2.3">
      <description>
        Parameters to configure RLAPM (Receive Level Added PHY Margin) for the
        MoCA interface.
      </description>
      <object ref="Device.MoCA.Interface.{i}." requirement="present">
        <parameter ref="RlapmNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.MoCA.Interface.{i}.Rlapm.{i}."
          requirement="createDelete">
        <parameter ref="Profile" requirement="readWrite"/>
        <parameter ref="Frequency" requirement="readWrite"/>
        <parameter ref="GlobalAggrRxPwrLevel" requirement="readWrite"/>
        <parameter ref="PhyMargin" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="MoCA_Sapm:1" version="2.17"
        id="mocaIfSapmOptionalGroup/1.3.6.1.4.1.31621.1.2.2.2.4">
      <description>
        Parameters to configure SAPM (Subcarrier Added PHY Margin) for the MoCA
        interface.
      </description>
      <object ref="Device.MoCA.Interface.{i}." requirement="present">
        <parameter ref="SapmNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.MoCA.Interface.{i}.Sapm.{i}."
          requirement="createDelete">
        <parameter ref="Profile" requirement="readWrite"/>
        <parameter ref="Frequency" requirement="readWrite"/>
        <parameter ref="AggrRxPwrLevelThreshold" requirement="readWrite"/>
        <parameter ref="PhyMargin" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="MoCA_Reset:1" version="2.17"
        id="mocaIfMrOptionalGroup/1.3.6.1.4.1.31621.1.2.2.2.6">
      <description>
        Parameters to control Moca Reset for the MoCA interface.
      </description>
      <object ref="Device.MoCA.Interface.{i}.Reset." requirement="present">
        <parameter ref="NodeMask" requirement="readWrite"/>
        <parameter ref="StartTime" requirement="readWrite"/>
        <parameter ref="StatusTrapEnable" requirement="readWrite"/>
        <parameter ref="NetworkTrapEnable" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="MoCA_StatusAdv:1" version="2.17"
        id="mocaIfStatusOptionalGroup/1.3.6.1.4.1.31621.1.2.2.2.8">
      <description>
        Parameters to monitor the bandwidth of the MoCA interface.
      </description>
      <object ref="Device.MoCA.Interface.{i}." requirement="present">
        <parameter ref="TxBcastPowerReduction" requirement="readOnly"/>
        <parameter ref="MaxIngressBW" requirement="readOnly"/>
        <parameter ref="FreqCapabilityMask" requirement="readOnly"/>
        <parameter ref="PasswordHash" requirement="readOnly"/>
        <parameter ref="AggregationSize" requirement="readOnly"/>
        <parameter ref="AeNumber" requirement="readOnly"/>
        <parameter ref="SupportedIngressPqosFlows" requirement="readOnly"/>
        <parameter ref="AvbSupport" requirement="readOnly"/>
        <parameter ref="ResetCount" requirement="readOnly"/>
        <parameter ref="LinkDownCount" requirement="readOnly"/>
        <parameter ref="LmoNodeID" requirement="readOnly"/>
        <parameter ref="NetworkState" requirement="readOnly"/>
        <parameter ref="PrimaryChannelOffset" requirement="readOnly"/>
        <parameter ref="SecondaryChannelOffset" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="MoCA_StatsAdv:1" version="2.17"
        id="mocaIfStatsOptionalGroup/1.3.6.1.4.1.31621.1.2.2.2.10">
      <description>
        Parameters to monitor the packet drop statistics of the MoCA interface.
      </description>
      <object ref="Device.MoCA.Interface.{i}.Stats." requirement="present">
        <parameter ref="DiscardPacketsSent" requirement="readOnly"/>
        <parameter ref="RxCorrectedErrors" requirement="readOnly"/>
        <parameter ref="DiscardPacketsReceived" requirement="readOnly"/>
        <parameter ref="BytesSent" requirement="readOnly"/>
        <parameter ref="BytesReceived" requirement="readOnly"/>
        <parameter ref="UnicastPacketsSent" requirement="readOnly"/>
        <parameter ref="UnicastPacketsReceived" requirement="readOnly"/>
        <parameter ref="MulticastPacketsSent" requirement="readOnly"/>
        <parameter ref="MulticastPacketsReceived" requirement="readOnly"/>
        <parameter ref="BroadcastPacketsSent" requirement="readOnly"/>
        <parameter ref="BroadcastPacketsReceived" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="MoCA_FlowStatsAdv:1" version="2.17"
        id="mocaIfFlowStatsOptionalGroup/1.3.6.1.4.1.31621.1.2.2.2.12">
      <description>
        Parameters to monitor the PQoS flow statistics of the MoCA interface.
      </description>
      <object ref="Device.MoCA.Interface.{i}.QoS.FlowStats.{i}."
          requirement="present">
        <parameter ref="LeaseTimeLeft" requirement="readOnly"/>
        <parameter ref="FlowPackets" requirement="readOnly"/>
        <parameter ref="IngressGuid" requirement="readOnly"/>
        <parameter ref="EgressGuid" requirement="readOnly"/>
        <parameter ref="MaximumLatency" requirement="readOnly"/>
        <parameter ref="ShortTermAvgRatio" requirement="readOnly"/>
        <parameter ref="FlowPer" requirement="readOnly"/>
        <parameter ref="IngressClassify" requirement="readOnly"/>
        <parameter ref="VlanTag" requirement="readOnly"/>
        <parameter ref="DscpMoca" requirement="readOnly"/>
        <parameter ref="Dfid" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="MoCA_LinkStats:1" version="2.17"
        id="mocaLinkStatsOptionalGroup/1.3.6.1.4.1.31621.1.2.2.2.13">
      <description>
        Parameter to monitor the packet drop statistics per link of the MoCA
        interface.
      </description>
      <object ref="Device.MoCA.Interface.{i}.AssociatedDevice.{i}."
          requirement="present">
        <parameter ref="TxPackets" requirement="readOnly"/>
        <parameter ref="TxDrops" requirement="readOnly"/>
        <parameter ref="EgressNodeNumFlows" requirement="readOnly"/>
        <parameter ref="IngressNodeNumFlows" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="MoCA_NodeAdv:1" version="2.17"
        id="mocaNodeOptionalGroup/1.3.6.1.4.1.31621.1.2.2.2.15">
      <description>
        Parameters to monitor Power Level to or from MoCA Nodes in the MoCA
        network.
      </description>
      <object ref="Device.MoCA.Interface.{i}.AssociatedDevice.{i}."
          requirement="present">
        <parameter ref="RxBcastPowerLevel" requirement="readOnly"/>
        <parameter ref="RxPackets" requirement="readOnly"/>
        <parameter ref="RxCorrected" requirement="readOnly"/>
        <parameter ref="RxErroredAndMissedPackets" requirement="readOnly"/>
        <parameter ref="SupportedIngressPqosFlows" requirement="readOnly"/>
        <parameter ref="SupportedEgressPqosFlows" requirement="readOnly"/>
        <parameter ref="AggregationSize" requirement="readOnly"/>
        <parameter ref="AeNumber" requirement="readOnly"/>
        <parameter ref="PowerState" requirement="readOnly"/>
        <parameter ref="PowerStateCapability" requirement="readOnly"/>
        <parameter ref="PDelay" requirement="readOnly"/>
        <parameter ref="EnhancedPrivacyCapable" requirement="readOnly"/>
        <parameter ref="LinkType" requirement="readOnly"/>
        <parameter ref="Moca25PhyCapable" requirement="readOnly"/>
        <parameter ref="RxPwrList" requirement="readOnly"/>
        <parameter ref="RxSNRList" requirement="readOnly"/>
        <parameter ref="TxPwrList" requirement="readOnly"/>
        <parameter ref="TxPwrReductionList" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="MoCA_Bridge:1" version="2.17"
        id="mocaBridgeOptionalGroup/1.3.6.1.4.1.31621.1.2.2.2.17">
      <description>
        Parameters to monitor the MoCA bridge table of each MoCA Node in the
        MoCA network.
      </description>
      <object ref="Device.MoCA.Interface.{i}." requirement="present">
        <parameter ref="BridgeNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.MoCA.Interface.{i}.Bridge.{i}."
          requirement="present">
        <parameter ref="NodeIndex" requirement="readOnly"/>
        <parameter ref="MACAddresses" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="Ghn:1" version="2.4">
      <object ref="Device.Ghn." requirement="present">
        <parameter ref="InterfaceNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.Ghn.Interface.{i}." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Alias" requirement="writeOnceReadOnly"/>
        <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="TargetDomainNames" requirement="readWrite"/>
        <parameter ref="DomainName" requirement="readOnly"/>
        <parameter ref="DomainNameIdentifier" requirement="readOnly"/>
        <parameter ref="DomainId" requirement="readOnly"/>
        <parameter ref="DeviceId" requirement="readOnly"/>
        <parameter ref="MaxBitRate" requirement="readOnly"/>
        <parameter ref="NodeTypeDMCapable" requirement="readOnly"/>
        <parameter ref="NodeTypeSCCapable" requirement="readOnly"/>
        <parameter ref="NodeTypeDMConfig" requirement="readOnly"/>
        <parameter ref="NodeTypeDMStatus" requirement="readOnly"/>
        <parameter ref="NodeTypeSCStatus" requirement="readOnly"/>
        <parameter ref="AssociatedDeviceNumberOfEntries"
            requirement="readOnly"/>
      </object>
      <object ref="Device.Ghn.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.Ghn.Interface.{i}.AssociatedDevice.{i}."
          requirement="present">
        <parameter ref="MACAddress" requirement="readOnly"/>
        <parameter ref="DeviceId" requirement="readOnly"/>
        <parameter ref="TxPhyRate" requirement="readOnly"/>
        <parameter ref="RxPhyRate" requirement="readOnly"/>
        <parameter ref="Active" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="HomePlug:1" version="2.0">
      <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="writeOnceReadOnly"/>
        <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="UPA:1" version="2.0">
      <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="writeOnceReadOnly"/>
        <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" version="2.0" dmr:previousProfile="UPA: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" version="2.0">
      <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="writeOnceReadOnly"/>
        <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" version="2.0">
      <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="writeOnceReadOnly"/>
        <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="WiFiSSID:2" base="WiFiSSID:1" version="2.17">
      <object ref="Device.WiFi.SSID.{i}." requirement="createDelete">
        <parameter ref="MLDUnit" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="WiFiAccessPoint:1" version="2.0">
      <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="present">
        <parameter ref="MACAddress" requirement="readOnly"/>
        <parameter ref="AuthenticationState" requirement="readOnly"/>
        <parameter ref="LastDataDownlinkRate" requirement="readOnly"/>
        <parameter ref="LastDataUplinkRate" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="WiFiAccessPoint:2" base="WiFiAccessPoint:1" version="2.9">
      <object ref="Device.WiFi.AccessPoint.{i}." requirement="createDelete">
        <parameter ref="MACAddressControlEnabled" requirement="readWrite"/>
        <parameter ref="AllowedMACAddress" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="WiFiEndPoint:1" version="2.0">
      <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="ZigBeeInterface:1" version="2.10">
      <object ref="Device.ZigBee." requirement="present">
        <parameter ref="InterfaceNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.ZigBee.Interface.{i}." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Alias" requirement="writeOnceReadOnly"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="LastChange" requirement="readOnly"/>
        <parameter ref="LowerLayers" requirement="readWrite"/>
        <parameter ref="IEEEAddress" requirement="readOnly"/>
        <parameter ref="NetworkAddress" requirement="readOnly"/>
        <parameter ref="ZDOReference" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="ZigBeeAssociatedDevices:1" extends="ZigBeeInterface:1"
        version="2.10">
      <object ref="Device.ZigBee.Interface.{i}." requirement="present">
        <parameter ref="AssociatedDeviceNumberOfEntries"
            requirement="readOnly"/>
      </object>
      <object ref="Device.ZigBee.Interface.{i}.AssociatedDevice.{i}."
          requirement="present">
        <parameter ref="IEEEAddress" requirement="readOnly"/>
        <parameter ref="NetworkAddress" requirement="readOnly"/>
        <parameter ref="Active" requirement="readOnly"/>
        <parameter ref="ZDOReference" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="ZigBeeDisc:1" version="2.10">
      <object ref="Device.ZigBee.Discovery." requirement="present">
        <parameter ref="AreaNetworkNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.ZigBee.Discovery.AreaNetwork.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="LastUpdate" requirement="readOnly"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Coordinator" requirement="readWrite"/>
        <parameter ref="ZDOReference" requirement="readOnly"/>
        <parameter ref="ZDOList" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="ZDOBasic:1" version="2.10">
      <object ref="Device.ZigBee." requirement="present">
        <parameter ref="ZDONumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.ZigBee.ZDO.{i}." requirement="present">
        <parameter ref="IEEEAddress" requirement="readOnly"/>
        <parameter ref="NetworkAddress" requirement="readOnly"/>
      </object>
      <object ref="Device.ZigBee.ZDO.{i}.NodeDescriptor."
          requirement="present">
        <parameter ref="LogicalType" requirement="readOnly"/>
        <parameter ref="ComplexDescriptorSupported" requirement="readOnly"/>
        <parameter ref="UserDescriptorSupported" requirement="readOnly"/>
        <parameter ref="FrequencyBand" requirement="readOnly"/>
        <parameter ref="MACCapability" requirement="readOnly"/>
        <parameter ref="ManufactureCode" requirement="readOnly"/>
        <parameter ref="MaximumBufferSize" requirement="readOnly"/>
        <parameter ref="MaximumIncomingTransferSize" requirement="readOnly"/>
        <parameter ref="MaximumOutgoingTransferSize" requirement="readOnly"/>
        <parameter ref="ServerMask" requirement="readOnly"/>
        <parameter ref="DescriptorCapability" requirement="readOnly"/>
      </object>
      <object ref="Device.ZigBee.ZDO.{i}.PowerDescriptor."
          requirement="present">
        <parameter ref="CurrentPowerMode" requirement="readOnly"/>
        <parameter ref="AvailablePowerSource" requirement="readOnly"/>
        <parameter ref="CurrentPowerSource" requirement="readOnly"/>
        <parameter ref="CurrentPowerSourceLevel" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="ZDOAdv:1" extends="ZDOBasic:1" version="2.10">
      <object ref="Device.ZigBee.ZDO.{i}." requirement="present">
        <parameter ref="BindingTableNumberOfEntries" requirement="readOnly"/>
        <parameter ref="GroupNumberOfEntries" requirement="readOnly"/>
        <parameter ref="ApplicationEndpointNumberOfEntries"
            requirement="readOnly"/>
      </object>
      <object ref="Device.ZigBee.ZDO.{i}.UserDescriptor."
          requirement="present">
        <parameter ref="DescriptorAvailable" requirement="readOnly"/>
        <parameter ref="Description" requirement="readOnly"/>
      </object>
      <object ref="Device.ZigBee.ZDO.{i}.ComplexDescriptor."
          requirement="present">
        <parameter ref="DescriptorAvailable" requirement="readOnly"/>
        <parameter ref="Language" requirement="readOnly"/>
        <parameter ref="CharacterSet" requirement="readOnly"/>
        <parameter ref="ManufacturerName" requirement="readOnly"/>
        <parameter ref="ModelName" requirement="readOnly"/>
        <parameter ref="SerialNumber" requirement="readOnly"/>
        <parameter ref="DeviceURL" requirement="readOnly"/>
        <parameter ref="Icon" requirement="readOnly"/>
        <parameter ref="IconURL" requirement="readOnly"/>
      </object>
      <object ref="Device.ZigBee.ZDO.{i}.Security." requirement="present">
        <parameter ref="TrustCenterAddress" requirement="readOnly"/>
        <parameter ref="SecurityLevel" requirement="readOnly"/>
        <parameter ref="TimeOutPeriod" requirement="readOnly"/>
      </object>
      <object ref="Device.ZigBee.ZDO.{i}.Network." requirement="present">
        <parameter ref="NeighborNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.ZigBee.ZDO.{i}.Network.Neighbor.{i}."
          requirement="present">
        <parameter ref="Neighbor" requirement="readOnly"/>
        <parameter ref="LQI" requirement="readOnly"/>
        <parameter ref="Relationship" requirement="readOnly"/>
        <parameter ref="PermitJoin" requirement="readOnly"/>
        <parameter ref="Depth" requirement="readOnly"/>
      </object>
      <object ref="Device.ZigBee.ZDO.{i}.NodeManager." requirement="present">
        <parameter ref="RoutingTableNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.ZigBee.ZDO.{i}.NodeManager.RoutingTable.{i}."
          requirement="present">
        <parameter ref="DestinationAddress" requirement="readOnly"/>
        <parameter ref="NextHopAddress" requirement="readOnly"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="MemoryConstrained" requirement="readOnly"/>
        <parameter ref="ManyToOne" requirement="readOnly"/>
        <parameter ref="RouteRecordRequired" requirement="readOnly"/>
      </object>
      <object ref="Device.ZigBee.ZDO.{i}.Binding.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="SourceEndpoint" requirement="readWrite"/>
        <parameter ref="SourceAddress" requirement="readWrite"/>
        <parameter ref="ClusterId" requirement="readWrite"/>
        <parameter ref="DestinationAddressMode" requirement="readWrite"/>
        <parameter ref="DestinationEndpoint" requirement="readWrite"/>
        <parameter ref="IEEEDestinationAddress" requirement="readWrite"/>
        <parameter ref="GroupDestinationAddress" requirement="readWrite"/>
      </object>
      <object ref="Device.ZigBee.ZDO.{i}.Group.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="GroupId" requirement="readWrite"/>
        <parameter ref="EndpointList" requirement="readWrite"/>
      </object>
      <object ref="Device.ZigBee.ZDO.{i}.ApplicationEndpoint.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="EndpointId" requirement="readWrite"/>
      </object>
      <object
          ref="Device.ZigBee.ZDO.{i}.ApplicationEndpoint.{i}.SimpleDescriptor."
          requirement="present">
        <parameter ref="ProfileId" requirement="readWrite"/>
        <parameter ref="DeviceId" requirement="readOnly"/>
        <parameter ref="DeviceVersion" requirement="readOnly"/>
        <parameter ref="InputClusterList" requirement="readWrite"/>
        <parameter ref="OutputClusterList" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="ZigBeeStats:1" extends="ZigBeeInterface:1"
        status="deprecated" version="2.10">
      <object ref="Device.ZigBee.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="UnknownPacketsReceived" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="ZigBeeStats:2" extends="ZigBeeInterface:1" version="2.19">
      <object ref="Device.ZigBee.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="Bridge:1" version="2.0">
      <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="writeOnceReadOnly"/>
        <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" version="2.0">
      <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="writeOnceReadOnly"/>
        <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" version="2.0">
      <object ref="Device.Bridging." requirement="present">
        <parameter ref="MaxFilterEntries" requirement="readOnly"/>
        <parameter ref="FilterNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.Bridging.Filter.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Bridge" requirement="readWrite"/>
        <parameter ref="Order" requirement="readWrite"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="VLANIDFilter" requirement="readWrite"/>
        <parameter ref="EthertypeFilterList" requirement="readWrite"/>
        <parameter ref="EthertypeFilterExclude" requirement="readWrite"/>
        <parameter ref="SourceMACAddressFilterList" requirement="readWrite"/>
        <parameter ref="SourceMACAddressFilterExclude" requirement="readWrite"/>
        <parameter ref="DestMACAddressFilterList" requirement="readWrite"/>
        <parameter ref="DestMACAddressFilterExclude" requirement="readWrite"/>
        <parameter ref="SourceMACFromVendorClassIDFilter"
            requirement="readWrite"/>
        <parameter ref="SourceMACFromVendorClassIDFilterExclude"
            requirement="readWrite"/>
        <parameter ref="SourceMACFromVendorClassIDMode"
            requirement="readWrite"/>
        <parameter ref="DestMACFromVendorClassIDFilter"
            requirement="readWrite"/>
        <parameter ref="DestMACFromVendorClassIDFilterExclude"
            requirement="readWrite"/>
        <parameter ref="DestMACFromVendorClassIDMode" requirement="readWrite"/>
        <parameter ref="SourceMACFromClientIDFilter" requirement="readWrite"/>
        <parameter ref="SourceMACFromClientIDFilterExclude"
            requirement="readWrite"/>
        <parameter ref="DestMACFromClientIDFilter" requirement="readWrite"/>
        <parameter ref="DestMACFromClientIDFilterExclude"
            requirement="readWrite"/>
        <parameter ref="SourceMACFromUserClassIDFilter"
            requirement="readWrite"/>
        <parameter ref="SourceMACFromUserClassIDFilterExclude"
            requirement="readWrite"/>
        <parameter ref="DestMACFromUserClassIDFilter" requirement="readWrite"/>
        <parameter ref="DestMACFromUserClassIDFilterExclude"
            requirement="readWrite"/>
      </object>
    </profile>

    <profile name="BridgeFilter:2" base="BridgeFilter:1" version="2.2">
      <object ref="Device.Bridging.Filter.{i}." requirement="createDelete">
        <parameter ref="DHCPType" requirement="readWrite"/>
        <parameter ref="SourceMACFromVendorClassIDFilter"
            requirement="readWrite">
          <description>
            REQUIRED only for IPv4 capable devices.
          </description>
        </parameter>
        <parameter ref="DestMACFromVendorClassIDFilter"
            requirement="readWrite">
          <description>
            REQUIRED only for IPv4 capable devices.
          </description>
        </parameter>
        <parameter ref="SourceMACFromVendorClassIDFilterv6"
            requirement="readWrite">
          <description>
            REQUIRED only for IPv6 capable devices.
          </description>
        </parameter>
        <parameter ref="DestMACFromVendorClassIDFilterv6"
            requirement="readWrite">
          <description>
            REQUIRED only for IPv6 capable devices.
          </description>
        </parameter>
      </object>
    </profile>

    <profile name="BridgeL3L4Filter:1" extends="BridgeFilter:2" version="2.6">
      <object ref="Device.Bridging.Filter.{i}." requirement="createDelete">
        <parameter ref="DestIP" requirement="readWrite"/>
        <parameter ref="DestMask" requirement="readWrite"/>
        <parameter ref="DestIPExclude" requirement="readWrite"/>
        <parameter ref="SourcePort" requirement="readWrite"/>
        <parameter ref="SourcePortRangeMax" requirement="readWrite"/>
        <parameter ref="SourceIP" requirement="readWrite"/>
        <parameter ref="SourceMask" requirement="readWrite"/>
        <parameter ref="SourceIPExclude" requirement="readWrite"/>
        <parameter ref="SourcePortExclude" requirement="readWrite"/>
        <parameter ref="Protocol" requirement="readWrite"/>
        <parameter ref="ProtocolExclude" requirement="readWrite"/>
        <parameter ref="DestPort" requirement="readWrite"/>
        <parameter ref="DestPortExclude" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="ProviderBridge:1" version="2.7">
      <object ref="Device.Bridging." requirement="present">
        <parameter ref="MaxProviderBridgeEntries" requirement="readOnly"/>
        <parameter ref="ProviderBridgeNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.Bridging.Bridge.{i}.Port.{i}."
          requirement="createDelete">
        <parameter ref="ServiceAccessPrioritySelection"
            requirement="readWrite"/>
        <parameter ref="ServiceAccessPriorityTranslation"
            requirement="readWrite"/>
        <parameter ref="Type" requirement="readWrite"/>
        <parameter ref="TPID" requirement="readWrite"/>
      </object>
      <object ref="Device.Bridging.Bridge.{i}.Port.{i}.PriorityCodePoint."
          requirement="present">
        <parameter ref="PCPSelection" requirement="readWrite"/>
        <parameter ref="UseDEI" requirement="readWrite"/>
        <parameter ref="RequireDropEncoding" requirement="readWrite"/>
        <parameter ref="PCPEncoding" requirement="readWrite"/>
        <parameter ref="PCPDecoding" requirement="readWrite"/>
      </object>
      <object ref="Device.Bridging.ProviderBridge.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Type" requirement="readWrite"/>
        <parameter ref="SVLANcomponent" requirement="readWrite"/>
        <parameter ref="CVLANcomponents" requirement="readWrite"/>
      </object>
      <object ref="Device.Ethernet.VLANTermination.{i}."
          requirement="createDelete">
        <parameter ref="TPID" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="UDPEcho:1" version="2.0">
      <object ref="Device.IP.Diagnostics.UDPEchoConfig." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="SourceIPAddress" requirement="readWrite"/>
        <parameter ref="UDPPort" requirement="readWrite"/>
        <parameter ref="PacketsReceived" requirement="readOnly"/>
        <parameter ref="PacketsResponded" requirement="readOnly"/>
        <parameter ref="BytesReceived" requirement="readOnly"/>
        <parameter ref="BytesResponded" requirement="readOnly"/>
        <parameter ref="TimeFirstPacketReceived" requirement="readOnly"/>
        <parameter ref="TimeLastPacketReceived" requirement="readOnly"/>
        <parameter ref="EchoPlusSupported" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="UDPEchoPlus:1" version="2.0">
      <object ref="Device.IP.Diagnostics.UDPEchoConfig." requirement="present">
        <parameter ref="EchoPlusEnabled" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="SupportedDataModel:1" version="2.0"
        dmr:previousProfile="UDPEchoPlus:1">
      <object ref="Device.DeviceInfo." requirement="present">
        <parameter ref="SupportedDataModelNumberOfEntries"
            requirement="readOnly"/>
      </object>
      <object ref="Device.DeviceInfo.SupportedDataModel.{i}."
          requirement="present">
        <parameter ref="URL" requirement="readOnly"/>
        <parameter ref="URN" requirement="readOnly"/>
        <parameter ref="Features" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="TWAMPReflectorBasic:1" version="2.12">
      <object ref="Device.IP.Interface.{i}." requirement="createDelete">
        <parameter ref="TWAMPReflectorNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.IP.Interface.{i}.TWAMPReflector.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Port" requirement="readWrite"/>
        <parameter ref="MaximumTTL" requirement="readWrite"/>
        <parameter ref="IPAllowedList" requirement="readWrite"/>
        <parameter ref="PortAllowedList" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="LLDPBaseline:1" version="2.8">
      <object ref="Device.LLDP." requirement="present"/>
      <object ref="Device.LLDP.Discovery." requirement="present">
        <parameter ref="DeviceNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.LLDP.Discovery.Device.{i}." requirement="present">
        <parameter ref="Interface" requirement="readOnly"/>
        <parameter ref="ChassisIDSubtype" requirement="readOnly"/>
        <parameter ref="ChassisID" requirement="readOnly"/>
        <parameter ref="Host" requirement="readOnly"/>
        <parameter ref="PortNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.LLDP.Discovery.Device.{i}.Port.{i}."
          requirement="present">
        <parameter ref="PortIDSubtype" requirement="readOnly"/>
        <parameter ref="PortID" requirement="readOnly"/>
        <parameter ref="TTL" requirement="readOnly"/>
        <parameter ref="PortDescription" requirement="readOnly"/>
        <parameter ref="LastUpdate" requirement="readOnly"/>
        <parameter ref="MACAddressList" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="LLDPRemOrgDefInfo:1" version="2.8">
      <object ref="Device.LLDP.Discovery.Device.{i}.Port.{i}.LinkInformation."
          requirement="present">
        <parameter ref="InterfaceType" requirement="readOnly"/>
        <parameter ref="MACForwardingTable" requirement="readOnly"/>
      </object>
      <object ref="Device.LLDP.Discovery.Device.{i}.DeviceInformation."
          requirement="present">
        <parameter ref="DeviceCategory" requirement="readOnly"/>
        <parameter ref="ManufacturerOUI" requirement="readOnly"/>
        <parameter ref="ModelName" requirement="readOnly"/>
        <parameter ref="ModelNumber" requirement="readOnly"/>
        <parameter ref="VendorSpecificNumberOfEntries" requirement="readOnly"/>
      </object>
      <object
          ref="Device.LLDP.Discovery.Device.{i}.DeviceInformation.VendorSpecific.{i}."
          requirement="present">
        <parameter ref="OrganizationCode" requirement="readOnly"/>
        <parameter ref="InformationType" requirement="readOnly"/>
        <parameter ref="Information" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="IPsec:1" version="2.5">
      <object ref="Device.IPsec." requirement="present">
        <parameter ref="AHSupported" requirement="readOnly"/>
        <parameter ref="IKEv2SupportedEncryptionAlgorithms"
            requirement="readOnly"/>
        <parameter ref="ESPSupportedEncryptionAlgorithms"
            requirement="readOnly"/>
        <parameter ref="IKEv2SupportedPseudoRandomFunctions"
            requirement="readOnly"/>
        <parameter ref="SupportedIntegrityAlgorithms" requirement="readOnly"/>
        <parameter ref="SupportedDiffieHellmanGroupTransforms"
            requirement="readOnly"/>
        <parameter ref="MaxFilterEntries" requirement="readOnly"/>
        <parameter ref="MaxProfileEntries" requirement="readOnly"/>
        <parameter ref="FilterNumberOfEntries" requirement="readOnly"/>
        <parameter ref="ProfileNumberOfEntries" requirement="readOnly"/>
        <parameter ref="TunnelNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.IPsec.Stats." requirement="present">
        <parameter ref="NegotiationFailures" requirement="readOnly"/>
        <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="UnknownSPIErrors" requirement="readOnly"/>
        <parameter ref="DecryptionErrors" requirement="readOnly"/>
        <parameter ref="IntegrityErrors" requirement="readOnly"/>
        <parameter ref="OtherReceiveErrors" requirement="readOnly"/>
      </object>
      <object ref="Device.IPsec.Filter.{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="ProcessingChoice" requirement="readWrite"/>
        <parameter ref="Profile" requirement="readWrite"/>
      </object>
      <object ref="Device.IPsec.Profile.{i}." requirement="createDelete">
        <parameter ref="MaxChildSAs" requirement="readWrite"/>
        <parameter ref="RemoteEndpoints" requirement="readWrite"/>
        <parameter ref="ForwardingPolicy" requirement="readWrite"/>
        <parameter ref="Protocol" requirement="readWrite"/>
        <parameter ref="IKEv2AuthenticationMethod" requirement="readWrite"/>
        <parameter ref="IKEv2AllowedEncryptionAlgorithms"
            requirement="readWrite"/>
        <parameter ref="ESPAllowedEncryptionAlgorithms"
            requirement="readWrite"/>
        <parameter ref="IKEv2AllowedPseudoRandomFunctions"
            requirement="readWrite"/>
        <parameter ref="IKEv2AllowedIntegrityAlgorithms"
            requirement="readWrite"/>
        <parameter ref="ESPAllowedIntegrityAlgorithms" requirement="readWrite"/>
        <parameter ref="IKEv2AllowedDiffieHellmanGroupTransforms"
            requirement="readWrite"/>
      </object>
      <object ref="Device.IPsec.Tunnel.{i}." requirement="present">
        <parameter ref="TunnelInterface" requirement="readOnly"/>
        <parameter ref="TunneledInterface" requirement="readOnly"/>
      </object>
      <object ref="Device.IPsec.Tunnel.{i}.Stats." requirement="present">
        <parameter ref="DecryptionErrors" requirement="readOnly"/>
        <parameter ref="IntegrityErrors" requirement="readOnly"/>
        <parameter ref="OtherReceiveErrors" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="IPsecAdv:1" extends="IPsec:1" version="2.5">
      <object ref="Device.IPsec." requirement="present">
        <parameter ref="IKEv2SANumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.IPsec.IKEv2SA.{i}." requirement="present">
        <parameter ref="Tunnel" requirement="readOnly"/>
        <parameter ref="LocalAddress" requirement="readOnly"/>
        <parameter ref="RemoteAddress" requirement="readOnly"/>
        <parameter ref="CreationTime" requirement="readOnly"/>
        <parameter ref="ChildSANumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.IPsec.IKEv2SA.{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="DecryptionErrors" requirement="readOnly"/>
        <parameter ref="IntegrityErrors" requirement="readOnly"/>
        <parameter ref="OtherReceiveErrors" requirement="readOnly"/>
      </object>
      <object ref="Device.IPsec.IKEv2SA.{i}.ChildSA.{i}."
          requirement="present">
        <parameter ref="InboundSPI" requirement="readOnly"/>
        <parameter ref="OutboundSPI" requirement="readOnly"/>
        <parameter ref="CreationTime" requirement="readOnly"/>
      </object>
      <object ref="Device.IPsec.IKEv2SA.{i}.ChildSA.{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="DecryptionErrors" requirement="readOnly"/>
        <parameter ref="IntegrityErrors" requirement="readOnly"/>
        <parameter ref="OtherReceiveErrors" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="GREBasic:1" version="2.8">
      <object ref="Device.GRE." requirement="present">
        <parameter ref="TunnelNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.GRE.Tunnel.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="RemoteEndpoints" requirement="readWrite"/>
        <parameter ref="KeepAlivePolicy" requirement="readWrite"/>
        <parameter ref="KeepAliveTimeout" requirement="readWrite"/>
        <parameter ref="KeepAliveThreshold" requirement="readWrite"/>
        <parameter ref="DeliveryHeaderProtocol" requirement="readWrite"/>
        <parameter ref="ConnectedRemoteEndpoint" requirement="readOnly"/>
        <parameter ref="InterfaceNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.GRE.Tunnel.{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.GRE.Tunnel.{i}.Interface.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="LastChange" requirement="readOnly"/>
        <parameter ref="LowerLayers" requirement="readOnly"/>
        <parameter ref="ProtocolIdOverride" requirement="readWrite"/>
        <parameter ref="UseChecksum" requirement="readWrite"/>
      </object>
      <object ref="Device.GRE.Tunnel.{i}.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"/>
      </object>
    </profile>

    <profile name="GREAdv:1" extends="GREBasic:1" version="2.8">
      <object ref="Device.GRE." requirement="present">
        <parameter ref="FilterNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.GRE.Tunnel.{i}.Stats." requirement="present">
        <parameter ref="KeepAliveSent" requirement="readOnly"/>
        <parameter ref="KeepAliveReceived" requirement="readOnly"/>
      </object>
      <object ref="Device.GRE.Tunnel.{i}.Interface.{i}."
          requirement="createDelete">
        <parameter ref="KeyIdentifierGenerationPolicy" requirement="readWrite"/>
        <parameter ref="KeyIdentifier" requirement="readWrite"/>
        <parameter ref="UseSequenceNumber" requirement="readWrite"/>
      </object>
      <object ref="Device.GRE.Tunnel.{i}.Interface.{i}.Stats."
          requirement="present">
        <parameter ref="DiscardChecksumReceived" requirement="readOnly"/>
        <parameter ref="DiscardSequenceNumberReceived" requirement="readOnly"/>
      </object>
      <object ref="Device.GRE.Filter.{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="VLANIDCheck" requirement="readWrite"/>
        <parameter ref="VLANIDExclude" requirement="readWrite"/>
        <parameter ref="DSCPMarkPolicy" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="L2TPv3Basic:1" version="2.12">
      <object ref="Device.L2TPv3." requirement="present">
        <parameter ref="TunnelNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.L2TPv3.Tunnel.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="RemoteEndpoints" requirement="readWrite"/>
        <parameter ref="KeepAlivePolicy" requirement="readWrite"/>
        <parameter ref="KeepAliveTimeout" requirement="readWrite"/>
        <parameter ref="KeepAliveThreshold" requirement="readWrite"/>
        <parameter ref="DeliveryHeaderProtocol" requirement="readWrite"/>
        <parameter ref="TunnelEncapsulation" requirement="readWrite"/>
        <parameter ref="ConnectedRemoteEndpoint" requirement="readOnly"/>
        <parameter ref="InterfaceNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.L2TPv3.Tunnel.{i}.UDP." requirement="present">
        <parameter ref="SourcePort" requirement="readWrite"/>
        <parameter ref="RemotePort" requirement="readWrite"/>
        <parameter ref="EnableChecksum" requirement="readWrite"/>
      </object>
      <object ref="Device.L2TPv3.Tunnel.{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.L2TPv3.Tunnel.{i}.Interface.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="LastChange" requirement="readOnly"/>
        <parameter ref="LowerLayers" requirement="readOnly"/>
        <parameter ref="SessionID" requirement="readWrite"/>
        <parameter ref="CookiePolicy" requirement="readWrite"/>
        <parameter ref="Cookie" requirement="readWrite"/>
      </object>
      <object ref="Device.L2TPv3.Tunnel.{i}.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"/>
      </object>
    </profile>

    <profile name="L2TPv3Adv:1" extends="L2TPv3Basic:1" version="2.12">
      <object ref="Device.L2TPv3." requirement="present">
        <parameter ref="FilterNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.L2TPv3.Tunnel.{i}." requirement="createDelete">
        <parameter ref="DefaultDSCPMark" requirement="readWrite"/>
      </object>
      <object ref="Device.L2TPv3.Tunnel.{i}.Stats." requirement="present">
        <parameter ref="KeepAliveSent" requirement="readOnly"/>
        <parameter ref="KeepAliveReceived" requirement="readOnly"/>
      </object>
      <object ref="Device.L2TPv3.Tunnel.{i}.Interface.{i}.Stats."
          requirement="present">
        <parameter ref="DiscardChecksumReceived" requirement="readOnly"/>
        <parameter ref="DiscardSequenceNumberReceived" requirement="readOnly"/>
      </object>
      <object ref="Device.L2TPv3.Filter.{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="VLANIDCheck" requirement="readWrite"/>
        <parameter ref="VLANIDExclude" requirement="readWrite"/>
        <parameter ref="DSCPMarkPolicy" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="VXLANBasic:1" version="2.12">
      <object ref="Device.VXLAN." requirement="present">
        <parameter ref="TunnelNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.VXLAN.Tunnel.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="RemoteEndpoints" requirement="readWrite"/>
        <parameter ref="KeepAlivePolicy" requirement="readWrite"/>
        <parameter ref="KeepAliveTimeout" requirement="readWrite"/>
        <parameter ref="KeepAliveThreshold" requirement="readWrite"/>
        <parameter ref="DeliveryHeaderProtocol" requirement="readWrite"/>
        <parameter ref="ConnectedRemoteEndpoint" requirement="readOnly"/>
        <parameter ref="InterfaceNumberOfEntries" requirement="readOnly"/>
        <parameter ref="SourcePort" requirement="readWrite"/>
        <parameter ref="RemotePort" requirement="readWrite"/>
      </object>
      <object ref="Device.VXLAN.Tunnel.{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.VXLAN.Tunnel.{i}.Interface.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="LastChange" requirement="readOnly"/>
        <parameter ref="LowerLayers" requirement="readOnly"/>
        <parameter ref="VNI" requirement="readWrite"/>
      </object>
      <object ref="Device.VXLAN.Tunnel.{i}.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"/>
      </object>
    </profile>

    <profile name="VXLANAdv:1" extends="VXLANBasic:1" version="2.12">
      <object ref="Device.VXLAN." requirement="present">
        <parameter ref="FilterNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.VXLAN.Tunnel.{i}." requirement="createDelete">
        <parameter ref="DefaultDSCPMark" requirement="readWrite"/>
      </object>
      <object ref="Device.VXLAN.Tunnel.{i}.Stats." requirement="present">
        <parameter ref="KeepAliveSent" requirement="readOnly"/>
        <parameter ref="KeepAliveReceived" requirement="readOnly"/>
      </object>
      <object ref="Device.VXLAN.Tunnel.{i}.Interface.{i}.Stats."
          requirement="present">
        <parameter ref="DiscardChecksumReceived" requirement="readOnly"/>
        <parameter ref="DiscardSequenceNumberReceived" requirement="readOnly"/>
      </object>
      <object ref="Device.VXLAN.Filter.{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="VLANIDCheck" requirement="readWrite"/>
        <parameter ref="VLANIDExclude" requirement="readWrite"/>
        <parameter ref="DSCPMarkPolicy" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="MAPBasic:1" version="2.8">
      <object ref="Device.MAP." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="DomainNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.MAP.Domain.{i}." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="TransportMode" requirement="readOnly"/>
        <parameter ref="WANInterface" requirement="readOnly"/>
        <parameter ref="IPv6Prefix" requirement="readWrite"/>
        <parameter ref="BRIPv6Prefix" requirement="readWrite"/>
        <parameter ref="RuleNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.MAP.Domain.{i}.Rule.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="IPv6Prefix" requirement="readWrite"/>
        <parameter ref="IPv4Prefix" requirement="readWrite"/>
        <parameter ref="IsFMR" requirement="readWrite"/>
      </object>
      <object ref="Device.MAP.Domain.{i}.Interface." requirement="present"/>
    </profile>

    <profile name="MAPAdv:1" extends="MAPBasic:1" version="2.8"
        status="deleted">
      <object ref="Device.MAP.Domain.{i}." requirement="present">
        <parameter ref="PSIDOffset" requirement="readWrite" status="deleted"/>
        <parameter ref="PSIDLength" requirement="readWrite" status="deleted"/>
        <parameter ref="PSID" requirement="readWrite" status="deleted"/>
        <parameter ref="IncludeSystemPorts" requirement="readWrite"
            status="deleted"/>
      </object>
      <object ref="Device.MAP.Domain.{i}.Rule.{i}." requirement="createDelete">
        <parameter ref="EABitsLength" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="MAPAdv:2" extends="MAPBasic:1" version="2.15">
      <object ref="Device.MAP.Domain.{i}.Rule.{i}." requirement="createDelete">
        <parameter ref="EABitsLength" requirement="readWrite"/>
        <parameter ref="PSIDOffset" requirement="readWrite"/>
        <parameter ref="PSIDLength" requirement="readWrite"/>
        <parameter ref="PSID" requirement="readWrite"/>
        <parameter ref="IncludeSystemPorts" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="CaptivePortal:1" version="2.0">
      <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="Routing:1" version="2.0">
      <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="AcceptRA" requirement="readWrite"/>
        <parameter ref="SendRA" requirement="readWrite"/>
      </object>
      <object ref="Device.Routing.Router.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="IPv4ForwardingNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.Routing.Router.{i}.IPv4Forwarding.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="DestIPAddress" requirement="readWrite"/>
        <parameter ref="DestSubnetMask" requirement="readWrite"/>
        <parameter ref="GatewayIPAddress" requirement="readWrite"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="ForwardingMetric" requirement="readWrite"/>
        <parameter ref="StaticRoute" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="Routing:2" base="Routing:1" version="2.2">
      <object ref="Device.Routing.Router.{i}.IPv4Forwarding.{i}."
          requirement="createDelete">
        <parameter ref="Origin" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="IPv6Routing:1" version="2.2">
      <object ref="Device.Routing." requirement="present">
        <parameter ref="RouterNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.Routing.RIP." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="SupportedModes" requirement="readOnly"/>
        <parameter ref="InterfaceSettingNumberOfEntries"
            requirement="readOnly"/>
      </object>
      <object ref="Device.Routing.RIP.InterfaceSetting.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="AcceptRA" requirement="readWrite"/>
        <parameter ref="SendRA" requirement="readWrite"/>
      </object>
      <object ref="Device.Routing.RouteInformation." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="InterfaceSettingNumberOfEntries"
            requirement="readOnly"/>
      </object>
      <object ref="Device.Routing.RouteInformation.InterfaceSetting.{i}."
          requirement="present">
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Interface" requirement="readOnly"/>
        <parameter ref="SourceRouter" requirement="readOnly"/>
        <parameter ref="PreferredRouteFlag" requirement="readOnly"/>
        <parameter ref="Prefix" requirement="readOnly"/>
        <parameter ref="RouteLifetime" requirement="readOnly"/>
      </object>
      <object ref="Device.Routing.Router.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="IPv6ForwardingNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.Routing.Router.{i}.IPv6Forwarding.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="DestIPPrefix" requirement="readWrite"/>
        <parameter ref="NextHop" requirement="readWrite"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="ForwardingMetric" requirement="readWrite"/>
        <parameter ref="Origin" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="IPInterface:1" version="2.0"
        dmr:previousProfile="IPv6Routing: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="writeOnceReadOnly"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="LastChange" requirement="readOnly"/>
        <parameter ref="LowerLayers" requirement="readWrite"/>
        <parameter ref="Type" requirement="readOnly"/>
        <parameter ref="Reset" requirement="readWrite"/>
        <parameter ref="IPv4AddressNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.IP.Interface.{i}.IPv4Address.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="IPAddress" requirement="readWrite"/>
        <parameter ref="SubnetMask" requirement="readWrite"/>
        <parameter ref="AddressingType" requirement="readOnly"/>
      </object>
      <object ref="Device.IP.Interface.{i}.Stats." requirement="present">
        <parameter ref="BytesSent" requirement="readOnly"/>
        <parameter ref="BytesReceived" requirement="readOnly"/>
        <parameter ref="PacketsSent" requirement="readOnly"/>
        <parameter ref="PacketsReceived" requirement="readOnly"/>
        <parameter ref="ErrorsSent" requirement="readOnly"/>
        <parameter ref="ErrorsReceived" requirement="readOnly"/>
        <parameter ref="UnicastPacketsSent" requirement="readOnly"/>
        <parameter ref="UnicastPacketsReceived" requirement="readOnly"/>
        <parameter ref="DiscardPacketsSent" requirement="readOnly"/>
        <parameter ref="DiscardPacketsReceived" requirement="readOnly"/>
        <parameter ref="MulticastPacketsSent" requirement="readOnly"/>
        <parameter ref="MulticastPacketsReceived" requirement="readOnly"/>
        <parameter ref="BroadcastPacketsSent" requirement="readOnly"/>
        <parameter ref="BroadcastPacketsReceived" requirement="readOnly"/>
        <parameter ref="UnknownProtoPacketsReceived" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="IPInterface:2" base="IPInterface:1"
        dmr:previousProfile="IPInterface:1" version="2.2">
      <description>
        This profile is IPv4 specific.
      </description>
      <object ref="Device.IP." requirement="present">
        <parameter ref="IPv4Enable" requirement="readWrite"/>
        <parameter ref="IPv4Status" requirement="readOnly"/>
      </object>
      <object ref="Device.IP.Interface.{i}." requirement="createDelete">
        <parameter ref="IPv4Enable" requirement="readWrite"/>
      </object>
      <object ref="Device.IP.Interface.{i}.IPv4Address.{i}."
          requirement="createDelete">
        <parameter ref="Status" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="IPv6Interface:1" dmr:previousProfile="IPInterface:2"
        version="2.2">
      <object ref="Device.IP." requirement="present">
        <parameter ref="IPv6Capable" requirement="readOnly"/>
        <parameter ref="IPv6Enable" requirement="readWrite"/>
        <parameter ref="IPv6Status" requirement="readOnly"/>
        <parameter ref="ULAPrefix" requirement="readWrite"/>
        <parameter ref="InterfaceNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.IP.Interface.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="IPv6Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Alias" requirement="writeOnceReadOnly"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="LastChange" requirement="readOnly"/>
        <parameter ref="LowerLayers" requirement="readWrite"/>
        <parameter ref="Type" requirement="readOnly"/>
        <parameter ref="ULAEnable" requirement="readWrite"/>
        <parameter ref="Reset" requirement="readWrite"/>
        <parameter ref="IPv6AddressNumberOfEntries" requirement="readOnly"/>
        <parameter ref="IPv6PrefixNumberOfEntries" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="PPPInterface:1" version="2.0"
        dmr:previousProfile="IPv6Interface: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="writeOnceReadOnly"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="LastChange" requirement="readOnly"/>
        <parameter ref="LowerLayers" requirement="readWrite"/>
        <parameter ref="Reset" requirement="readWrite"/>
        <parameter ref="Username" requirement="readWrite"/>
        <parameter ref="Password" requirement="readWrite"/>
        <parameter ref="ConnectionTrigger" requirement="readWrite"/>
      </object>
      <object ref="Device.PPP.Interface.{i}.PPPoE." requirement="present">
        <parameter ref="SessionID" requirement="readOnly"/>
        <parameter ref="ACName" requirement="readWrite"/>
        <parameter ref="ServiceName" requirement="readWrite"/>
      </object>
      <object ref="Device.PPP.Interface.{i}.Stats." requirement="present">
        <parameter ref="BytesSent" requirement="readOnly"/>
        <parameter ref="BytesReceived" requirement="readOnly"/>
        <parameter ref="PacketsSent" requirement="readOnly"/>
        <parameter ref="PacketsReceived" requirement="readOnly"/>
        <parameter ref="ErrorsSent" requirement="readOnly"/>
        <parameter ref="ErrorsReceived" requirement="readOnly"/>
        <parameter ref="UnicastPacketsSent" requirement="readOnly"/>
        <parameter ref="UnicastPacketsReceived" requirement="readOnly"/>
        <parameter ref="DiscardPacketsSent" requirement="readOnly"/>
        <parameter ref="DiscardPacketsReceived" requirement="readOnly"/>
        <parameter ref="MulticastPacketsSent" requirement="readOnly"/>
        <parameter ref="MulticastPacketsReceived" requirement="readOnly"/>
        <parameter ref="BroadcastPacketsSent" requirement="readOnly"/>
        <parameter ref="BroadcastPacketsReceived" requirement="readOnly"/>
        <parameter ref="UnknownProtoPacketsReceived" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="PPPInterface:2" base="PPPInterface:1"
        dmr:previousProfile="PPPInterface:1" version="2.2">
      <object ref="Device.PPP." requirement="present">
        <parameter ref="SupportedNCPs" requirement="readOnly"/>
      </object>
      <object ref="Device.PPP.Interface.{i}." requirement="createDelete">
        <parameter ref="IPv6CPEnable" requirement="readWrite">
          <description>
            REQUIRED only for IPv6 capable devices.
          </description>
        </parameter>
      </object>
      <object ref="Device.PPP.Interface.{i}.IPv6CP." requirement="present">
        <description>
          REQUIRED only for IPv6 capable devices.
        </description>
        <parameter ref="LocalInterfaceIdentifier" requirement="readOnly"/>
        <parameter ref="RemoteInterfaceIdentifier" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="Babel:1" version="2.15">
      <object ref="Device.Routing.Babel." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="ImplementationVersion" requirement="readOnly"/>
        <parameter ref="SelfRouterID" requirement="readOnly"/>
        <parameter ref="SupportedMetricCompAlgorithms" requirement="readOnly"/>
        <parameter ref="SupportedSecurityMechanisms" requirement="readOnly"/>
        <parameter ref="InterfaceSettingNumberOfEntries"
            requirement="readOnly"/>
        <parameter ref="RouteNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.Routing.Babel.Constants." requirement="present">
        <parameter ref="UDPPort" requirement="readWrite"/>
      </object>
      <object ref="Device.Routing.Babel.InterfaceSetting.{i}."
          requirement="present">
        <parameter ref="InterfaceReference" requirement="readOnly"/>
        <parameter ref="InterfaceMetricAlgorithm" requirement="readOnly"/>
        <parameter ref="NeighborNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.Routing.Babel.InterfaceSetting.{i}.Neighbor.{i}."
          requirement="present">
        <parameter ref="NeighborAddress" requirement="readOnly"/>
        <parameter ref="TXCost" requirement="readOnly"/>
        <parameter ref="ExpectedMCastHelloSeqno" requirement="readOnly"/>
        <parameter ref="ExpectedUCastHelloSeqno" requirement="readOnly"/>
      </object>
      <object ref="Device.Routing.Babel.Route.{i}." requirement="present">
        <parameter ref="RoutePrefix" requirement="readOnly"/>
        <parameter ref="SourceRouterID" requirement="readOnly"/>
        <parameter ref="Neighbor" requirement="readOnly"/>
        <parameter ref="ReceivedMetric" requirement="readOnly"/>
        <parameter ref="CalculatedMetric" requirement="readOnly"/>
        <parameter ref="RouteSeqno" requirement="readOnly"/>
        <parameter ref="NextHop" requirement="readOnly"/>
        <parameter ref="RouteFeasible" requirement="readOnly"/>
        <parameter ref="RouteSelected" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="BabelMAC:1" extends="Babel:1" version="2.15">
      <object ref="Device.Routing.Babel." requirement="present">
        <parameter ref="SupportedMACAlgorithms" requirement="readOnly"/>
        <parameter ref="MACKeySetNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.Routing.Babel.InterfaceSetting.{i}."
          requirement="present">
        <parameter ref="MACEnabled" requirement="readWrite"/>
        <parameter ref="InterfaceMACKeySets" requirement="readWrite"/>
        <parameter ref="MACVerify" requirement="readWrite"/>
      </object>
      <object ref="Device.Routing.Babel.MACKeySet.{i}."
          requirement="createDelete">
        <parameter ref="DefaultApply" requirement="readWrite"/>
        <parameter ref="MACKeyNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.Routing.Babel.MACKeySet.{i}.MACKey.{i}."
          requirement="createDelete">
        <parameter ref="KeyUseSend" requirement="readWrite"/>
        <parameter ref="KeyUseVerify" requirement="readWrite"/>
        <parameter ref="KeyValue" requirement="readOnly"/>
        <parameter ref="MACKeyAlgorithm" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="BabelDTLS:1" extends="Babel:1" version="2.15">
      <object ref="Device.Routing.Babel." requirement="present">
        <parameter ref="SupportedDTLSCertTypes" requirement="readOnly"/>
        <parameter ref="DTLSCertSetNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.Routing.Babel.InterfaceSetting.{i}."
          requirement="present">
        <parameter ref="DTLSEnabled" requirement="readWrite"/>
        <parameter ref="InterfaceDTLSCertSets" requirement="readWrite"/>
      </object>
      <object ref="Device.Routing.Babel.DTLSCertSet.{i}."
          requirement="createDelete">
        <parameter ref="DefaultApply" requirement="readWrite"/>
        <parameter ref="DTLSCertNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.Routing.Babel.DTLSCertSet.{i}.DTLSCert.{i}."
          requirement="createDelete">
        <parameter ref="CertValue" requirement="readOnly"/>
        <parameter ref="CertType" requirement="readWrite"/>
        <parameter ref="CertPrivateKey" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="NeighborDiscovery:1" version="2.2">
      <object ref="Device.NeighborDiscovery." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="InterfaceSettingNumberOfEntries"
            requirement="readOnly"/>
      </object>
      <object ref="Device.NeighborDiscovery.InterfaceSetting.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="RetransTimer" requirement="readWrite"/>
        <parameter ref="RtrSolicitationInterval" requirement="readWrite"/>
        <parameter ref="MaxRtrSolicitations" requirement="readWrite"/>
        <parameter ref="NUDEnable" requirement="readWrite"/>
        <parameter ref="RSEnable" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="RouterAdvertisement:1" version="2.2">
      <object ref="Device.RouterAdvertisement." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="InterfaceSettingNumberOfEntries"
            requirement="readOnly"/>
      </object>
      <object ref="Device.RouterAdvertisement.InterfaceSetting.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="MaxRtrAdvInterval" requirement="readWrite"/>
        <parameter ref="MinRtrAdvInterval" requirement="readWrite"/>
        <parameter ref="AdvDefaultLifetime" requirement="readWrite"/>
        <parameter ref="AdvManagedFlag" requirement="readWrite"/>
        <parameter ref="AdvOtherConfigFlag" requirement="readWrite"/>
        <parameter ref="AdvMobileAgentFlag" requirement="readWrite"/>
        <parameter ref="AdvPreferredRouterFlag" requirement="readWrite"/>
        <parameter ref="AdvNDProxyFlag" requirement="readWrite"/>
        <parameter ref="AdvLinkMTU" requirement="readWrite"/>
        <parameter ref="AdvReachableTime" requirement="readWrite"/>
        <parameter ref="AdvRetransTimer" requirement="readWrite"/>
        <parameter ref="AdvCurHopLimit" requirement="readWrite"/>
        <parameter ref="OptionNumberOfEntries" requirement="readOnly"/>
      </object>
      <object
          ref="Device.RouterAdvertisement.InterfaceSetting.{i}.Option.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Tag" requirement="readWrite"/>
        <parameter ref="Value" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="IPv6rd:1" version="2.2">
      <object ref="Device.IPv6rd." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="InterfaceSettingNumberOfEntries"
            requirement="readOnly"/>
      </object>
      <object ref="Device.IPv6rd.InterfaceSetting.{i}." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="BorderRelayIPv4Addresses" requirement="readWrite"/>
        <parameter ref="AllTrafficToBorderRelay" requirement="readWrite"/>
        <parameter ref="SPIPv6Prefix" requirement="readWrite"/>
        <parameter ref="IPv4MaskLength" requirement="readWrite"/>
        <parameter ref="AddressSource" requirement="readWrite"/>
        <parameter ref="TunnelInterface" requirement="readOnly"/>
        <parameter ref="TunneledInterface" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="DSLite:1" version="2.2">
      <object ref="Device.DSLite." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="InterfaceSettingNumberOfEntries"
            requirement="readOnly"/>
      </object>
      <object ref="Device.DSLite.InterfaceSetting.{i}." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="EndpointAssignmentPrecedence" requirement="readWrite"/>
        <parameter ref="EndpointName" requirement="readWrite"/>
        <parameter ref="EndpointAddress" requirement="readWrite"/>
        <parameter ref="Origin" requirement="readOnly"/>
        <parameter ref="TunnelInterface" requirement="readOnly"/>
        <parameter ref="TunneledInterface" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="DSLite:2" base="DSLite:1" version="2.5">
      <object ref="Device.DSLite.InterfaceSetting.{i}." requirement="present">
        <parameter ref="EndpointAddressTypePrecedence" requirement="readWrite"/>
        <parameter ref="EndpointAddressInUse" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="ProviderBridgeQoS:1" version="2.7">
      <object ref="Device.QoS." requirement="present">
        <parameter ref="DefaultInnerEthernetPriorityMark"
            requirement="readWrite"/>
      </object>
      <object ref="Device.QoS.Classification.{i}." requirement="createDelete">
        <parameter ref="InnerEthernetPriorityCheck" requirement="readWrite"/>
        <parameter ref="InnerEthernetPriorityExclude" requirement="readWrite"/>
        <parameter ref="InnerEthernetPriorityMark" requirement="readWrite"/>
        <parameter ref="EthernetDEICheck" requirement="readWrite"/>
        <parameter ref="EthernetDEIExclude" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="QoS:1" version="2.0">
      <object ref="Device.QoS." requirement="present">
        <parameter ref="MaxClassificationEntries" requirement="readOnly"/>
        <parameter ref="ClassificationNumberOfEntries" requirement="readOnly"/>
        <parameter ref="MaxAppEntries" requirement="readOnly"/>
        <parameter ref="AppNumberOfEntries" requirement="readOnly"/>
        <parameter ref="MaxFlowEntries" requirement="readOnly"/>
        <parameter ref="FlowNumberOfEntries" requirement="readOnly"/>
        <parameter ref="MaxPolicerEntries" requirement="readOnly"/>
        <parameter ref="PolicerNumberOfEntries" requirement="readOnly"/>
        <parameter ref="MaxQueueEntries" requirement="readOnly"/>
        <parameter ref="QueueNumberOfEntries" requirement="readOnly"/>
        <parameter ref="ShaperNumberOfEntries" requirement="readOnly"/>
        <parameter ref="DefaultForwardingPolicy" requirement="readWrite"/>
        <parameter ref="DefaultPolicer" requirement="readWrite"/>
        <parameter ref="DefaultQueue" requirement="readWrite"/>
        <parameter ref="DefaultDSCPMark" requirement="readWrite"/>
        <parameter ref="DefaultEthernetPriorityMark" requirement="readWrite"/>
        <parameter ref="AvailableAppList" requirement="readOnly"/>
        <parameter ref="DefaultTrafficClass" requirement="readWrite"/>
      </object>
      <object ref="Device.QoS.Classification.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Order" requirement="readWrite"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="AllInterfaces" requirement="readWrite"/>
        <parameter ref="DestIP" requirement="readWrite"/>
        <parameter ref="DestMask" requirement="readWrite"/>
        <parameter ref="DestIPExclude" requirement="readWrite"/>
        <parameter ref="SourceIP" requirement="readWrite"/>
        <parameter ref="SourceMask" requirement="readWrite"/>
        <parameter ref="SourceIPExclude" requirement="readWrite"/>
        <parameter ref="Protocol" requirement="readWrite"/>
        <parameter ref="ProtocolExclude" requirement="readWrite"/>
        <parameter ref="DestPort" requirement="readWrite"/>
        <parameter ref="DestPortRangeMax" requirement="readWrite"/>
        <parameter ref="DestPortExclude" requirement="readWrite"/>
        <parameter ref="SourcePort" requirement="readWrite"/>
        <parameter ref="SourcePortRangeMax" requirement="readWrite"/>
        <parameter ref="SourcePortExclude" requirement="readWrite"/>
        <parameter ref="SourceMACAddress" requirement="readWrite"/>
        <parameter ref="SourceMACExclude" requirement="readWrite"/>
        <parameter ref="DestMACAddress" requirement="readWrite"/>
        <parameter ref="DestMACExclude" requirement="readWrite"/>
        <parameter ref="DSCPCheck" requirement="readWrite"/>
        <parameter ref="DSCPExclude" requirement="readWrite"/>
        <parameter ref="DSCPMark" requirement="readWrite"/>
        <parameter ref="EthernetPriorityCheck" requirement="readWrite"/>
        <parameter ref="EthernetPriorityExclude" requirement="readWrite"/>
        <parameter ref="EthernetPriorityMark" requirement="readWrite"/>
        <parameter ref="VLANIDCheck" requirement="readWrite"/>
        <parameter ref="VLANIDExclude" requirement="readWrite"/>
        <parameter ref="ForwardingPolicy" requirement="readWrite"/>
        <parameter ref="Policer" requirement="readWrite"/>
        <parameter ref="TrafficClass" requirement="readWrite"/>
      </object>
      <object ref="Device.QoS.Policer.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="CommittedRate" requirement="readWrite"/>
        <parameter ref="CommittedBurstSize" requirement="readWrite"/>
        <parameter ref="MeterType" requirement="readWrite"/>
        <parameter ref="PossibleMeterTypes" requirement="readOnly"/>
        <parameter ref="ConformingAction" requirement="readWrite"/>
        <parameter ref="NonConformingAction" requirement="readWrite"/>
        <parameter ref="TotalCountedPackets" requirement="readOnly"/>
        <parameter ref="TotalCountedBytes" requirement="readOnly"/>
        <parameter ref="ExcessBurstSize" requirement="readWrite"/>
        <parameter ref="PeakRate" requirement="readWrite"/>
        <parameter ref="PeakBurstSize" requirement="readWrite"/>
        <parameter ref="PartialConformingAction" requirement="readWrite"/>
      </object>
      <object ref="Device.QoS.Queue.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="AllInterfaces" requirement="readWrite"/>
        <parameter ref="BufferLength" requirement="readOnly"/>
        <parameter ref="Weight" requirement="readWrite"/>
        <parameter ref="Precedence" requirement="readWrite"/>
        <parameter ref="REDThreshold" requirement="readWrite"/>
        <parameter ref="REDPercentage" requirement="readWrite"/>
        <parameter ref="DropAlgorithm" requirement="readWrite"/>
        <parameter ref="SchedulerAlgorithm" requirement="readWrite"/>
        <parameter ref="ShapingRate" requirement="readWrite"/>
        <parameter ref="ShapingBurstSize" requirement="readWrite"/>
        <parameter ref="TrafficClasses" requirement="readWrite"/>
      </object>
      <object ref="Device.QoS.Shaper.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="ShapingRate" requirement="readWrite"/>
        <parameter ref="ShapingBurstSize" requirement="readWrite"/>
      </object>
      <object ref="Device.Routing.Router.{i}.IPv4Forwarding.{i}."
          requirement="notSpecified">
        <parameter ref="ForwardingPolicy" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="QoS:2" base="QoS:1" version="2.2">
      <object ref="Device.Routing.Router.{i}.IPv4Forwarding.{i}."
          requirement="notSpecified">
        <description>
          REQUIRED only for IPv4 capable devices.
        </description>
      </object>
      <object ref="Device.Routing.Router.{i}.IPv6Forwarding.{i}."
          requirement="notSpecified">
        <description>
          REQUIRED only for IPv6 capable devices.
        </description>
        <parameter ref="ForwardingPolicy" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="QoSDynamicFlow:1" version="2.0">
      <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" version="2.0">
      <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" version="2.0" status="deleted">
      <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" status="deleted"/>
        <parameter ref="LeaseTimeRemaining" requirement="readOnly"
            status="deleted"/>
        <parameter ref="PhysAddress" requirement="readOnly"/>
        <parameter ref="HostName" requirement="readOnly"/>
        <parameter ref="Active" requirement="readOnly"/>
        <parameter ref="Layer1Interface" requirement="readOnly"/>
        <parameter ref="Layer3Interface" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="Hosts:2" base="Hosts:1" version="2.2" status="deleted">
      <object ref="Device.Hosts.Host.{i}." requirement="present">
        <parameter ref="DHCPClient" requirement="readOnly"/>
        <parameter ref="AssociatedDevice" requirement="readOnly"/>
        <parameter ref="IPv4AddressNumberOfEntries" requirement="readOnly">
          <description>
            REQUIRED only for IPv4 capable devices.
          </description>
        </parameter>
        <parameter ref="IPv6AddressNumberOfEntries" requirement="readOnly">
          <description>
            REQUIRED only for IPv6 capable devices.
          </description>
        </parameter>
      </object>
      <object ref="Device.Hosts.Host.{i}.IPv4Address.{i}."
          requirement="present">
        <description>
          REQUIRED only for IPv4 capable devices.
        </description>
        <parameter ref="IPAddress" requirement="readOnly"/>
      </object>
      <object ref="Device.Hosts.Host.{i}.IPv6Address.{i}."
          requirement="present">
        <description>
          REQUIRED only for IPv6 capable devices.
        </description>
        <parameter ref="IPAddress" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="Hosts:3" version="2.15">
      <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="PhysAddress" requirement="readOnly"/>
        <parameter ref="HostName" requirement="readOnly"/>
        <parameter ref="Active" requirement="readOnly"/>
        <parameter ref="Layer1Interface" requirement="readOnly"/>
        <parameter ref="Layer3Interface" requirement="readOnly"/>
        <parameter ref="DHCPClient" requirement="readOnly"/>
        <parameter ref="AssociatedDevice" requirement="readOnly"/>
        <parameter ref="IPv4AddressNumberOfEntries" requirement="readOnly">
          <description>
            REQUIRED only for IPv4 capable devices.
          </description>
        </parameter>
        <parameter ref="IPv6AddressNumberOfEntries" requirement="readOnly">
          <description>
            REQUIRED only for IPv6 capable devices.
          </description>
        </parameter>
      </object>
      <object ref="Device.Hosts.Host.{i}.IPv4Address.{i}."
          requirement="present">
        <description>
          REQUIRED only for IPv4 capable devices.
        </description>
        <parameter ref="IPAddress" requirement="readOnly"/>
      </object>
      <object ref="Device.Hosts.Host.{i}.IPv6Address.{i}."
          requirement="present">
        <description>
          REQUIRED only for IPv6 capable devices.
        </description>
        <parameter ref="IPAddress" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="AccessControl:1" status="deprecated" version="2.14">
      <object ref="Device.Hosts." requirement="present">
        <parameter ref="AccessControlNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.Hosts.AccessControl.{i}." requirement="present">
        <parameter ref="PhysAddress" requirement="readWrite"/>
        <parameter ref="AccessPolicy" requirement="readWrite"/>
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="ScheduleNumberOfEntries" requirement="readOnly"
            status="deprecated"/>
      </object>
      <object ref="Device.Hosts.AccessControl.{i}.Schedule.{i}."
          requirement="present" status="deprecated">
        <parameter ref="Alias" requirement="writeOnceReadOnly"/>
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Day" requirement="readWrite"/>
        <parameter ref="StartTime" requirement="readWrite"/>
        <parameter ref="Duration" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="AccessControl:2" version="2.18">
      <object ref="Device.Hosts." requirement="present">
        <parameter ref="AccessControlNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.Hosts.AccessControl.{i}." requirement="present">
        <parameter ref="PhysAddress" requirement="readWrite"/>
        <parameter ref="AccessPolicy" requirement="readWrite"/>
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="ScheduleRef" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="DNSRelay:1" version="2.0">
      <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="DNS_SD:1" version="2.6">
      <object ref="Device.DNS.SD." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="ServiceNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.DNS.SD.Service.{i}." requirement="present">
        <parameter ref="InstanceName" requirement="readOnly"/>
        <parameter ref="ApplicationProtocol" requirement="readOnly"/>
        <parameter ref="TransportProtocol" requirement="readOnly"/>
        <parameter ref="Domain" requirement="readOnly"/>
        <parameter ref="Port" requirement="readOnly"/>
        <parameter ref="Target" requirement="readOnly"/>
        <parameter ref="Priority" requirement="readOnly"/>
        <parameter ref="Weight" requirement="readOnly"/>
        <parameter ref="TimeToLive" requirement="readOnly"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="LastUpdate" requirement="readOnly"/>
        <parameter ref="Host" requirement="readOnly"/>
        <parameter ref="TextRecordNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.DNS.SD.Service.{i}.TextRecord.{i}."
          requirement="present">
        <parameter ref="Key" requirement="readOnly"/>
        <parameter ref="Value" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="NAT:1" version="2.0">
      <object ref="Device.NAT." requirement="present">
        <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="DHCPv4Server:1" version="2.0">
      <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" version="2.0">
      <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" version="2.0">
      <object ref="Device.DHCPv4." requirement="present"/>
      <object ref="Device.DHCPv4.Relay." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="ForwardingNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.DHCPv4.Relay.Forwarding.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Order" requirement="readWrite"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="LocallyServed" requirement="readWrite"/>
        <parameter ref="DHCPServerIPAddress" requirement="readWrite"/>
        <parameter ref="VendorClassID" requirement="readWrite"/>
        <parameter ref="ClientID" requirement="readWrite"/>
        <parameter ref="UserClassID" requirement="readWrite"/>
        <parameter ref="Chaddr" requirement="readWrite"/>
        <parameter ref="ChaddrMask" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="DHCPv4ServerClientInfo:1" version="2.2">
      <object ref="Device.DHCPv4.Server.Pool.{i}." requirement="createDelete">
        <parameter ref="ClientNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.DHCPv4.Server.Pool.{i}.Client.{i}."
          requirement="present">
        <parameter ref="Alias" requirement="writeOnceReadOnly"/>
        <parameter ref="Chaddr" requirement="readOnly"/>
        <parameter ref="Active" requirement="readOnly"/>
        <parameter ref="IPv4AddressNumberOfEntries" requirement="readOnly"/>
        <parameter ref="OptionNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.DHCPv4.Server.Pool.{i}.Client.{i}.IPv4Address.{i}."
          requirement="present">
        <parameter ref="IPAddress" requirement="readOnly"/>
        <parameter ref="LeaseTimeRemaining" requirement="readOnly"/>
      </object>
      <object ref="Device.DHCPv4.Server.Pool.{i}.Client.{i}.Option.{i}."
          requirement="present">
        <parameter ref="Tag" requirement="readOnly"/>
        <parameter ref="Value" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="DHCPv6Client:1"
        dmr:previousProfile="DHCPv4ServerClientInfo:1" version="2.2">
      <object ref="Device.DHCPv6." requirement="present">
        <parameter ref="ClientNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.DHCPv6.Client.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="DUID" requirement="readOnly"/>
        <parameter ref="RequestAddresses" requirement="readWrite"/>
        <parameter ref="RequestPrefixes" requirement="readWrite"/>
        <parameter ref="RapidCommit" requirement="readWrite"/>
        <parameter ref="Renew" requirement="readWrite"/>
        <parameter ref="SuggestedT1" requirement="readWrite"/>
        <parameter ref="SuggestedT2" requirement="readWrite"/>
        <parameter ref="SupportedOptions" requirement="readOnly"/>
        <parameter ref="RequestedOptions" requirement="readWrite"/>
        <parameter ref="SentOptionNumberOfEntries" requirement="readOnly"/>
        <parameter ref="ReceivedOptionNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.DHCPv6.Client.{i}.SentOption.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Tag" requirement="readWrite"/>
        <parameter ref="Value" requirement="readWrite"/>
      </object>
      <object ref="Device.DHCPv6.Client.{i}.ReceivedOption.{i}."
          requirement="present">
        <parameter ref="Tag" requirement="readOnly"/>
        <parameter ref="Value" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="DHCPv6ClientServerIdentity:1" extends="DHCPv6Client:1"
        dmr:previousProfile="DHCPv6Client:1" version="2.2">
      <object ref="Device.DHCPv6.Client.{i}." requirement="createDelete">
        <parameter ref="ServerNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.DHCPv6.Client.{i}.Server.{i}." requirement="present">
        <parameter ref="SourceAddress" requirement="readOnly"/>
        <parameter ref="DUID" requirement="readOnly"/>
        <parameter ref="InformationRefreshTime" requirement="readOnly"/>
      </object>
      <object ref="Device.DHCPv6.Client.{i}.ReceivedOption.{i}."
          requirement="present">
        <parameter ref="Server" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="DHCPv6Server:1" version="2.2">
      <object ref="Device.DHCPv6." requirement="present"/>
      <object ref="Device.DHCPv6.Server." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="PoolNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.DHCPv6.Server.Pool.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Order" requirement="readWrite"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="IANAEnable" requirement="readWrite"/>
        <parameter ref="IAPDEnable" requirement="readWrite"/>
        <parameter ref="IANAPrefixes" requirement="readOnly"/>
        <parameter ref="IAPDAddLength" requirement="readWrite"/>
        <parameter ref="OptionNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.DHCPv6.Server.Pool.{i}.Option.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Tag" requirement="readWrite"/>
        <parameter ref="Value" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="DHCPv6ServerAdv:1" extends="DHCPv6Server:1" version="2.2">
      <object ref="Device.DHCPv6.Server.Pool.{i}." requirement="createDelete">
        <parameter ref="DUID" requirement="readWrite"/>
        <parameter ref="VendorClassID" requirement="readWrite"/>
        <parameter ref="UserClassID" requirement="readWrite"/>
        <parameter ref="SourceAddress" requirement="readWrite"/>
        <parameter ref="SourceAddressMask" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="DHCPv6ServerClientInfo:1" version="2.2">
      <object ref="Device.DHCPv6.Server.Pool.{i}." requirement="createDelete">
        <parameter ref="ClientNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.DHCPv6.Server.Pool.{i}.Client.{i}."
          requirement="present">
        <parameter ref="SourceAddress" requirement="readOnly"/>
        <parameter ref="Active" requirement="readOnly"/>
        <parameter ref="IPv6AddressNumberOfEntries" requirement="readOnly"/>
        <parameter ref="IPv6PrefixNumberOfEntries" requirement="readOnly"/>
        <parameter ref="OptionNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6Address.{i}."
          requirement="present">
        <parameter ref="IPAddress" requirement="readOnly"/>
        <parameter ref="PreferredLifetime" requirement="readOnly"/>
        <parameter ref="ValidLifetime" requirement="readOnly"/>
      </object>
      <object ref="Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6Prefix.{i}."
          requirement="present">
        <parameter ref="Prefix" requirement="readOnly"/>
        <parameter ref="PreferredLifetime" requirement="readOnly"/>
        <parameter ref="ValidLifetime" requirement="readOnly"/>
      </object>
      <object ref="Device.DHCPv6.Server.Pool.{i}.Client.{i}.Option.{i}."
          requirement="present">
        <parameter ref="Tag" requirement="readOnly"/>
        <parameter ref="Value" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="IEEE8021xAuthentication:1" version="2.0">
      <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="IEEE8021xAuthentication:2" base="IEEE8021xAuthentication:1"
        version="2.7">
      <object ref="Device.IEEE8021x.Supplicant.{i}."
          requirement="createDelete">
        <parameter ref="Interface" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="IPPingDetailed:1"
        dmr:previousProfile="IEEE8021xAuthentication:2" version="2.7">
      <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="AverageResponseTimeDetailed" requirement="readOnly"/>
        <parameter ref="MinimumResponseTimeDetailed" requirement="readOnly"/>
        <parameter ref="MaximumResponseTimeDetailed" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="DHCPv4Client:1" version="2.0"
        dmr:previousProfile="IEEE8021xAuthentication:2">
      <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="User:1" version="2.0">
      <object ref="Device.Users." requirement="present">
        <parameter ref="UserNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.Users.User.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Username" requirement="readWrite"/>
        <parameter ref="Password" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="User:2" base="User:1" version="2.15.1">
      <object ref="Device.Users." requirement="present">
        <parameter ref="RoleNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.Users.Role.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="RoleName" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="UPnPDev:1" version="2.0">
      <object ref="Device.UPnP." requirement="present"/>
      <object ref="Device.UPnP.Device." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="UPnPMediaServer" requirement="readWrite"/>
        <parameter ref="UPnPMediaRenderer" requirement="readWrite"/>
        <parameter ref="UPnPWLANAccessPoint" requirement="readWrite"/>
        <parameter ref="UPnPQoSDevice" requirement="readWrite"/>
        <parameter ref="UPnPQoSPolicyHolder" requirement="readWrite"/>
        <parameter ref="UPnPIGD" requirement="readWrite"/>
      </object>
      <object ref="Device.UPnP.Device.Capabilities." requirement="present">
        <parameter ref="UPnPArchitecture" requirement="readOnly"/>
        <parameter ref="UPnPMediaServer" requirement="readOnly"/>
        <parameter ref="UPnPMediaRenderer" requirement="readOnly"/>
        <parameter ref="UPnPWLANAccessPoint" requirement="readOnly"/>
        <parameter ref="UPnPBasicDevice" requirement="readOnly"/>
        <parameter ref="UPnPQoSDevice" requirement="readOnly"/>
        <parameter ref="UPnPQoSPolicyHolder" requirement="readOnly"/>
        <parameter ref="UPnPIGD" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="UPnPDiscBasic:1" version="2.0">
      <object ref="Device.UPnP." requirement="present"/>
      <object ref="Device.UPnP.Discovery." requirement="present">
        <parameter ref="RootDeviceNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.UPnP.Discovery.RootDevice.{i}."
          requirement="present">
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="UUID" requirement="readOnly"/>
        <parameter ref="USN" requirement="readOnly"/>
        <parameter ref="LeaseTime" requirement="readOnly"/>
        <parameter ref="Location" requirement="readOnly"/>
        <parameter ref="Server" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="UPnPDiscAdv:1" extends="UPnPDiscBasic:1" version="2.0">
      <object ref="Device.UPnP.Discovery." requirement="present">
        <parameter ref="DeviceNumberOfEntries" requirement="readOnly"/>
        <parameter ref="ServiceNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.UPnP.Discovery.Device.{i}." requirement="present">
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="UUID" requirement="readOnly"/>
        <parameter ref="USN" requirement="readOnly"/>
        <parameter ref="LeaseTime" requirement="readOnly"/>
        <parameter ref="Location" requirement="readOnly"/>
        <parameter ref="Server" requirement="readOnly"/>
      </object>
      <object ref="Device.UPnP.Discovery.Service.{i}." requirement="present">
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="USN" requirement="readOnly"/>
        <parameter ref="LeaseTime" requirement="readOnly"/>
        <parameter ref="Location" requirement="readOnly"/>
        <parameter ref="Server" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="UPnPDiscAdv:2" base="UPnPDiscAdv:1" version="2.6">
      <object ref="Device.UPnP.Discovery.Device.{i}." requirement="present">
        <parameter ref="LastUpdate" requirement="readOnly"/>
        <parameter ref="Host" requirement="readOnly"/>
      </object>
      <object ref="Device.UPnP.Discovery.Service.{i}." requirement="present">
        <parameter ref="LastUpdate" requirement="readOnly"/>
        <parameter ref="Host" requirement="readOnly"/>
        <parameter ref="ParentDevice" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="SelfTestDiag:1" version="2.0"
        dmr:previousProfile="UPnPDiscAdv:2">
      <object ref="Device.SelfTestDiagnostics." requirement="present">
        <parameter ref="DiagnosticsState" requirement="readWrite"/>
        <parameter ref="Results" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="SimpleFirewall:1" version="2.0">
      <object ref="Device.Firewall." requirement="present">
        <parameter ref="Config" requirement="readWrite"/>
        <parameter ref="Version" requirement="readOnly"/>
        <parameter ref="LastChange" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="AdvancedFirewall:1" extends="SimpleFirewall:1"
        version="2.2">
      <object ref="Device.Firewall." requirement="present">
        <parameter ref="AdvancedLevel" requirement="readWrite"/>
        <parameter ref="Type" requirement="readOnly"/>
        <parameter ref="LevelNumberOfEntries" requirement="readOnly"/>
        <parameter ref="ChainNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.Firewall.Level.{i}." requirement="createDelete">
        <parameter ref="Alias" requirement="writeOnceReadOnly"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="Order" requirement="readWrite"/>
        <parameter ref="Chain" requirement="readOnly"/>
        <parameter ref="PortMappingEnabled" requirement="readWrite">
          <description>
            REQUIRED only for devices that support NAT.
          </description>
        </parameter>
        <parameter ref="DefaultPolicy" requirement="readWrite"/>
        <parameter ref="DefaultLogPolicy" requirement="readWrite"/>
      </object>
      <object ref="Device.Firewall.Chain.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Alias" requirement="writeOnceReadOnly"/>
        <parameter ref="Name" requirement="readWrite"/>
        <parameter ref="Creator" requirement="readOnly"/>
        <parameter ref="RuleNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.Firewall.Chain.{i}.Rule.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Order" requirement="readWrite"/>
        <parameter ref="Alias" requirement="writeOnceReadOnly"/>
        <parameter ref="Target" requirement="readWrite"/>
        <parameter ref="TargetChain" requirement="readWrite"/>
        <parameter ref="SourceInterface" requirement="readWrite"/>
        <parameter ref="SourceInterfaceExclude" requirement="readWrite"/>
        <parameter ref="SourceAllInterfaces" requirement="readWrite"/>
        <parameter ref="DestInterface" requirement="readWrite"/>
        <parameter ref="DestInterfaceExclude" requirement="readWrite"/>
        <parameter ref="DestAllInterfaces" requirement="readWrite"/>
        <parameter ref="IPVersion" requirement="readWrite"/>
        <parameter ref="DestIP" requirement="readWrite"/>
        <parameter ref="DestMask" requirement="readWrite"/>
        <parameter ref="DestIPExclude" requirement="readWrite"/>
        <parameter ref="SourceIP" requirement="readWrite"/>
        <parameter ref="SourceMask" requirement="readWrite"/>
        <parameter ref="SourceIPExclude" requirement="readWrite"/>
        <parameter ref="Protocol" requirement="readWrite"/>
        <parameter ref="ProtocolExclude" requirement="readWrite"/>
        <parameter ref="DestPort" requirement="readWrite"/>
        <parameter ref="DestPortRangeMax" requirement="readWrite"/>
        <parameter ref="DestPortExclude" requirement="readWrite"/>
        <parameter ref="SourcePort" requirement="readWrite"/>
        <parameter ref="SourcePortRangeMax" requirement="readWrite"/>
        <parameter ref="SourcePortExclude" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="PeriodicStatsBase:1" version="2.0">
      <object ref="Device.PeriodicStatistics." requirement="present">
        <parameter ref="MinSampleInterval" requirement="readOnly"/>
        <parameter ref="MaxReportSamples" requirement="readOnly"/>
        <parameter ref="SampleSetNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.PeriodicStatistics.SampleSet.{i}."
          requirement="createDelete">
        <parameter ref="Name" requirement="readWrite"/>
        <parameter ref="SampleInterval" requirement="readWrite"/>
        <parameter ref="ReportSamples" requirement="readWrite"/>
        <parameter ref="ReportStartTime" requirement="readOnly"/>
        <parameter ref="ReportEndTime" requirement="readOnly"/>
        <parameter ref="SampleSeconds" requirement="readOnly"/>
        <parameter ref="ParameterNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}."
          requirement="createDelete">
        <parameter ref="Reference" requirement="readWrite"/>
        <parameter ref="SampleSeconds" requirement="readOnly"/>
        <parameter ref="SuspectData" requirement="readOnly"/>
        <parameter ref="Values" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="PeriodicStatsAdv:1" extends="PeriodicStatsBase:1"
        version="2.0" dmr:previousProfile="PeriodicStatsBase:1">
      <object ref="Device.PeriodicStatistics.SampleSet.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="TimeReference" requirement="readWrite"/>
        <parameter ref="FetchSamples" requirement="readWrite"/>
        <parameter ref="ForceSample" requirement="readWrite"/>
      </object>
      <object ref="Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="SampleMode" requirement="readWrite"/>
        <parameter ref="CalculationMode" requirement="readWrite"/>
        <parameter ref="LowThreshold" requirement="readWrite"/>
        <parameter ref="HighThreshold" requirement="readWrite"/>
        <parameter ref="SampleSeconds" requirement="readOnly"/>
        <parameter ref="SuspectData" requirement="readOnly"/>
        <parameter ref="Values" requirement="readOnly"/>
        <parameter ref="Failures" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="FaultMgmtSupportedAlarms:1" version="2.4">
      <object ref="Device.FaultMgmt." requirement="present">
        <parameter ref="SupportedAlarmNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.FaultMgmt.SupportedAlarm.{i}." requirement="present">
        <parameter ref="EventType" requirement="readOnly"/>
        <parameter ref="ProbableCause" requirement="readOnly"/>
        <parameter ref="SpecificProblem" requirement="readOnly"/>
        <parameter ref="PerceivedSeverity" requirement="readOnly"/>
        <parameter ref="ReportingMechanism" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="FaultMgmtActive:1" version="2.4">
      <object ref="Device.FaultMgmt." requirement="present">
        <parameter ref="CurrentAlarmNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.FaultMgmt.CurrentAlarm.{i}." requirement="present">
        <parameter ref="AlarmIdentifier" requirement="readOnly"/>
        <parameter ref="AlarmRaisedTime" requirement="readOnly"/>
        <parameter ref="AlarmChangedTime" requirement="readOnly"/>
        <parameter ref="EventType" requirement="readOnly"/>
        <parameter ref="ProbableCause" requirement="readOnly"/>
        <parameter ref="PerceivedSeverity" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="FaultMgmtHistory:1" version="2.4">
      <object ref="Device.FaultMgmt." requirement="present">
        <parameter ref="HistoryEventNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.FaultMgmt.HistoryEvent.{i}." requirement="present">
        <parameter ref="EventTime" requirement="readOnly"/>
        <parameter ref="AlarmIdentifier" requirement="readOnly"/>
        <parameter ref="NotificationType" requirement="readOnly"/>
        <parameter ref="EventType" requirement="readOnly"/>
        <parameter ref="ProbableCause" requirement="readOnly"/>
        <parameter ref="PerceivedSeverity" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="FaultMgmtExpedited:1" version="2.4">
      <object ref="Device.FaultMgmt." requirement="present">
        <parameter ref="ExpeditedEventNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.FaultMgmt.ExpeditedEvent.{i}." requirement="present">
        <parameter ref="EventTime" requirement="readOnly"/>
        <parameter ref="AlarmIdentifier" requirement="readOnly"/>
        <parameter ref="NotificationType" requirement="readOnly"/>
        <parameter ref="EventType" requirement="readOnly"/>
        <parameter ref="ProbableCause" requirement="readOnly"/>
        <parameter ref="PerceivedSeverity" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="FaultMgmtQueued:1" version="2.4">
      <object ref="Device.FaultMgmt." requirement="present">
        <parameter ref="QueuedEventNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.FaultMgmt.QueuedEvent.{i}." requirement="present">
        <parameter ref="EventTime" requirement="readOnly"/>
        <parameter ref="AlarmIdentifier" requirement="readOnly"/>
        <parameter ref="NotificationType" requirement="readOnly"/>
        <parameter ref="EventType" requirement="readOnly"/>
        <parameter ref="ProbableCause" requirement="readOnly"/>
        <parameter ref="PerceivedSeverity" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="FAP_GPS:1" version="2.4">
      <object ref="Device.FAP.GPS." requirement="present">
        <parameter ref="ScanOnBoot" requirement="readWrite"/>
        <parameter ref="ScanPeriodically" requirement="readWrite"/>
        <parameter ref="PeriodicInterval" requirement="readWrite"/>
        <parameter ref="PeriodicTime" requirement="readWrite"/>
        <parameter ref="ContinuousGPS" requirement="readWrite"/>
        <parameter ref="ScanTimeout" requirement="readWrite"/>
        <parameter ref="ScanStatus" requirement="readOnly"/>
        <parameter ref="ErrorDetails" requirement="readOnly"/>
        <parameter ref="LastScanTime" requirement="readOnly"/>
        <parameter ref="LastSuccessfulScanTime" requirement="readOnly"/>
        <parameter ref="LockedLatitude" requirement="readOnly"/>
        <parameter ref="LockedLongitude" requirement="readOnly"/>
        <parameter ref="NumberOfSatellites" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="FAP_PerfMgmt:1" version="2.4">
      <object ref="Device.FAP.PerfMgmt." requirement="present">
        <parameter ref="ConfigNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.FAP.PerfMgmt.Config.{i}." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="URL" requirement="readWrite"/>
        <parameter ref="Username" requirement="readWrite"/>
        <parameter ref="Password" requirement="readWrite"/>
        <parameter ref="PeriodicUploadInterval" requirement="readWrite"/>
        <parameter ref="PeriodicUploadTime" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="FAP_ApplicationPlatform:1" version="2.4">
      <object ref="Device.FAP.ApplicationPlatform." requirement="present">
        <parameter ref="Version" requirement="readOnly"/>
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="MaxNumberOfApplications" requirement="readOnly"/>
      </object>
      <object ref="Device.FAP.ApplicationPlatform.Control."
          requirement="present">
        <parameter ref="AuthenticationMethod" requirement="readWrite"/>
      </object>
      <object ref="Device.FAP.ApplicationPlatform.Control.FemtoAwareness."
          requirement="present">
        <parameter ref="APIEnable" requirement="readWrite"/>
        <parameter ref="MaxAPIUsersNumber" requirement="readWrite"/>
        <parameter ref="FemtozoneID" requirement="readWrite"/>
      </object>
      <object ref="Device.FAP.ApplicationPlatform.Control.SMS."
          requirement="present">
        <parameter ref="APIEnable" requirement="readWrite"/>
        <parameter ref="MaxAPIUsersNumber" requirement="readWrite"/>
        <parameter ref="MinSendSMSTimeInterval" requirement="readWrite"/>
      </object>
      <object ref="Device.FAP.ApplicationPlatform.Control.MMS."
          requirement="present">
        <parameter ref="APIEnable" requirement="readWrite"/>
        <parameter ref="MaxAPIUsersNumber" requirement="readWrite"/>
        <parameter ref="MinSendMMSTimeInterval" requirement="readWrite"/>
      </object>
      <object ref="Device.FAP.ApplicationPlatform.Control.TerminalLocation."
          requirement="present">
        <parameter ref="APIEnable" requirement="readWrite"/>
        <parameter ref="MaxAPIUsersNumber" requirement="readWrite"/>
        <parameter ref="QueryMobileLocationResponseAddress"
            requirement="readWrite"/>
        <parameter ref="QueryMobileLocationResponseLongitudeLatitude"
            requirement="readWrite"/>
      </object>
    </profile>

    <profile name="BulkDataColl:1" version="2.5">
      <object ref="Device.BulkData." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="MinReportingInterval" requirement="readOnly"/>
        <parameter ref="Protocols" requirement="readOnly"/>
        <parameter ref="EncodingTypes" requirement="readOnly"/>
        <parameter ref="ProfileNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.BulkData.Profile.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Alias" requirement="writeOnceReadOnly"/>
        <parameter ref="Protocol" requirement="readWrite"/>
        <parameter ref="EncodingType" requirement="readWrite"/>
        <parameter ref="ReportingInterval" requirement="readWrite"/>
        <parameter ref="TimeReference" requirement="readWrite"/>
        <parameter ref="ParameterNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.BulkData.Profile.{i}.Parameter.{i}."
          requirement="createDelete">
        <parameter ref="Reference" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="BulkDataReports:1" extends="BulkDataColl:1" version="2.10">
      <object ref="Device.BulkData." requirement="present">
        <parameter ref="ParameterWildCardSupported" requirement="readOnly"/>
      </object>
      <object ref="Device.BulkData.Profile.{i}." requirement="createDelete">
        <parameter ref="Name" requirement="readWrite"/>
        <parameter ref="NumberOfRetainedFailedReports" requirement="readWrite"/>
      </object>
      <object ref="Device.BulkData.Profile.{i}.Parameter.{i}."
          requirement="createDelete">
        <parameter ref="Name" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="BulkDataJSONEncoding:1" extends="BulkDataColl:1"
        version="2.10">
      <object ref="Device.BulkData.Profile.{i}.JSONEncoding."
          requirement="present">
        <parameter ref="ReportFormat" requirement="readWrite"/>
        <parameter ref="ReportTimestamp" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="BulkDataCSVEncoding:1" extends="BulkDataColl:1"
        version="2.10">
      <object ref="Device.BulkData.Profile.{i}.CSVEncoding."
          requirement="present">
        <parameter ref="FieldSeparator" requirement="readWrite"/>
        <parameter ref="RowSeparator" requirement="readWrite"/>
        <parameter ref="EscapeCharacter" requirement="readWrite"/>
        <parameter ref="ReportFormat" requirement="readWrite"/>
        <parameter ref="RowTimestamp" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="BulkDataHTTP:1" extends="BulkDataColl:1" version="2.10">
      <object ref="Device.BulkData.Profile.{i}.HTTP." requirement="present">
        <parameter ref="URL" requirement="readWrite"/>
        <parameter ref="Username" requirement="readWrite"/>
        <parameter ref="Password" requirement="readWrite"/>
        <parameter ref="CompressionsSupported" requirement="readOnly"/>
        <parameter ref="Compression" requirement="readWrite"/>
        <parameter ref="MethodsSupported" requirement="readOnly"/>
        <parameter ref="Method" requirement="readWrite"/>
        <parameter ref="UseDateHeader" requirement="readWrite"/>
        <parameter ref="RetryEnable" requirement="readWrite"/>
        <parameter ref="RetryMinimumWaitInterval" requirement="readWrite"/>
        <parameter ref="RetryIntervalMultiplier" requirement="readWrite"/>
        <parameter ref="RequestURIParameterNumberOfEntries"
            requirement="readOnly"/>
      </object>
      <object ref="Device.BulkData.Profile.{i}.HTTP.RequestURIParameter.{i}."
          requirement="createDelete">
        <parameter ref="Name" requirement="readWrite"/>
        <parameter ref="Reference" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="XMPPBasic:1" version="2.7">
      <object ref="Device.XMPP." requirement="present">
        <parameter ref="ConnectionNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.XMPP.Connection.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Username" requirement="readWrite"/>
        <parameter ref="Password" requirement="readWrite"/>
        <parameter ref="Domain" requirement="readWrite"/>
        <parameter ref="Resource" requirement="readWrite"/>
        <parameter ref="JabberID" requirement="readOnly"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="LastChangeDate" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="XMPPConnReq:1" extends="XMPPBasic:1"
        dmr:previousProfile="XMPPBasic:1" version="2.7">
      <object ref="Device.ManagementServer." requirement="present">
        <parameter ref="SupportedConnReqMethods" requirement="readOnly"/>
        <parameter ref="ConnReqXMPPConnection" requirement="readWrite"/>
        <parameter ref="ConnReqAllowedJabberIDs" requirement="readWrite"/>
        <parameter ref="ConnReqJabberID" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="XMPPAdvanced:1" extends="XMPPBasic:1" version="2.7">
      <object ref="Device.XMPP.Connection.{i}." requirement="createDelete">
        <parameter ref="ServerConnectAlgorithm" requirement="readWrite"/>
        <parameter ref="KeepAliveInterval" requirement="readWrite"/>
        <parameter ref="ServerNumberOfEntries" requirement="readOnly"/>
        <parameter ref="UseTLS" requirement="readWrite"/>
        <parameter ref="TLSEstablished" requirement="readOnly"/>
      </object>
      <object ref="Device.XMPP.Connection.{i}.Server.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Priority" requirement="readWrite"/>
        <parameter ref="Weight" requirement="readWrite"/>
        <parameter ref="ServerAddress" requirement="readWrite"/>
        <parameter ref="Port" requirement="readWrite"/>
      </object>
      <object ref="Device.XMPP.Connection.{i}.Stats." requirement="present">
        <parameter ref="ReceivedMessages" requirement="readOnly"/>
        <parameter ref="TransmittedMessages" requirement="readOnly"/>
        <parameter ref="ReceivedErrorMessages" requirement="readOnly"/>
        <parameter ref="TransmittedErrorMessages" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="XMPPReconnect:1" version="2.7">
      <object ref="Device.XMPP.Connection.{i}." requirement="createDelete">
        <parameter ref="ServerConnectAttempts" requirement="readWrite"/>
        <parameter ref="ServerRetryInitialInterval" requirement="readWrite"/>
        <parameter ref="ServerRetryIntervalMultiplier" requirement="readWrite"/>
        <parameter ref="ServerRetryMaxInterval" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="InformParameters:1" dmr:previousProfile="XMPPReconnect:1"
        version="2.8">
      <object ref="Device.ManagementServer." requirement="present">
        <parameter ref="InformParameterNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.ManagementServer.InformParameter.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="ParameterName" requirement="readWrite"/>
        <parameter ref="EventList" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="IEEE1905Device:1" version="2.9">
      <object ref="Device.IEEE1905." requirement="present">
        <parameter ref="Version" requirement="readOnly"/>
      </object>
      <object ref="Device.IEEE1905.AL." requirement="present">
        <parameter ref="IEEE1905Id" requirement="readOnly"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="InterfaceNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.IEEE1905.AL.Interface.{i}." requirement="present">
        <parameter ref="InterfaceId" requirement="readOnly"/>
        <parameter ref="MediaType" requirement="readOnly"/>
        <parameter ref="GenericPhyOUI" requirement="readOnly"/>
        <parameter ref="GenericPhyVariant" requirement="readOnly"/>
        <parameter ref="GenericPhyURL" requirement="readOnly"/>
      </object>
      <object ref="Device.IEEE1905.AL.Security." requirement="present">
        <parameter ref="SetupMethod" requirement="readWrite"/>
        <parameter ref="Password" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="IEEE1905TopologyMetric:1" extends="IEEE1905Device:1"
        version="2.9">
      <object ref="Device.IEEE1905.AL.NetworkTopology." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="IEEE1905DeviceNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}."
          requirement="present">
        <parameter ref="IEEE1905Id" requirement="readOnly"/>
        <parameter ref="InterfaceNumberOfEntries" requirement="readOnly"/>
        <parameter ref="IEEE1905NeighborNumberOfEntries"
            requirement="readOnly"/>
      </object>
      <object
          ref="Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}."
          requirement="present">
        <parameter ref="LocalInterface" requirement="readOnly"/>
        <parameter ref="NeighborDeviceId" requirement="readOnly"/>
        <parameter ref="MetricNumberOfEntries" requirement="readOnly"/>
      </object>
      <object
          ref="Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.Metric.{i}."
          requirement="present">
        <parameter ref="NeighborMACAddress" requirement="readOnly"/>
        <parameter ref="IEEE802dot1Bridge" requirement="readOnly"/>
        <parameter ref="PacketErrors" requirement="readOnly"/>
        <parameter ref="PacketErrorsReceived" requirement="readOnly"/>
        <parameter ref="TransmittedPackets" requirement="readOnly"/>
        <parameter ref="PacketsReceived" requirement="readOnly"/>
        <parameter ref="MACThroughputCapacity" requirement="readOnly"/>
        <parameter ref="LinkAvailability" requirement="readOnly"/>
        <parameter ref="PHYRate" requirement="readOnly"/>
        <parameter ref="RSSI" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="IEEE1905TopologyNeighbor:1" extends="IEEE1905Device:1"
        version="2.9">
      <object ref="Device.IEEE1905.AL.NetworkTopology." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="IEEE1905DeviceNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}."
          requirement="present">
        <parameter ref="IEEE1905Id" requirement="readOnly"/>
        <parameter ref="Version" requirement="readOnly"/>
        <parameter ref="InterfaceNumberOfEntries" requirement="readOnly"/>
        <parameter ref="NonIEEE1905NeighborNumberOfEntries"
            requirement="readOnly"/>
        <parameter ref="IEEE1905NeighborNumberOfEntries"
            requirement="readOnly"/>
        <parameter ref="L2NeighborNumberOfEntries" requirement="readOnly"/>
      </object>
      <object
          ref="Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}."
          requirement="present">
        <parameter ref="LocalInterface" requirement="readOnly"/>
        <parameter ref="NeighborDeviceId" requirement="readOnly"/>
      </object>
      <object
          ref="Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}."
          requirement="present">
        <parameter ref="InterfaceId" requirement="readOnly"/>
        <parameter ref="MediaType" requirement="readOnly"/>
        <parameter ref="PowerState" requirement="readOnly"/>
      </object>
      <object
          ref="Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.NonIEEE1905Neighbor.{i}."
          requirement="present">
        <parameter ref="LocalInterface" requirement="readOnly"/>
        <parameter ref="NeighborInterfaceId" requirement="readOnly"/>
      </object>
      <object
          ref="Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.L2Neighbor.{i}."
          requirement="present">
        <parameter ref="LocalInterface" requirement="readOnly"/>
        <parameter ref="NeighborInterfaceId" requirement="readOnly"/>
        <parameter ref="BehindInterfaceIds" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="IEEE1905TopologyHigherLayer:1" extends="IEEE1905Device:1"
        version="2.9">
      <object ref="Device.IEEE1905.AL.NetworkTopology." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="IEEE1905DeviceNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}."
          requirement="present">
        <parameter ref="IEEE1905Id" requirement="readOnly"/>
        <parameter ref="Version" requirement="readOnly"/>
        <parameter ref="FriendlyName" requirement="readOnly"/>
        <parameter ref="ManufacturerName" requirement="readOnly"/>
        <parameter ref="ManufacturerModel" requirement="readOnly"/>
        <parameter ref="ControlURL" requirement="readOnly"/>
        <parameter ref="IPv4AddressNumberOfEntries" requirement="readOnly"/>
        <parameter ref="IPv6AddressNumberOfEntries" requirement="readOnly"/>
      </object>
      <object
          ref="Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv4Address.{i}."
          requirement="present">
        <parameter ref="MACAddress" requirement="readOnly"/>
        <parameter ref="IPv4Address" requirement="readOnly"/>
        <parameter ref="IPv4AddressType" requirement="readOnly"/>
        <parameter ref="DHCPServer" requirement="readOnly"/>
      </object>
      <object
          ref="Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv6Address.{i}."
          requirement="present">
        <parameter ref="MACAddress" requirement="readOnly"/>
        <parameter ref="IPv6Address" requirement="readOnly"/>
        <parameter ref="IPv6AddressType" requirement="readOnly"/>
        <parameter ref="IPv6AddressOrigin" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="IEEE1905Power:1" extends="IEEE1905Device:1" version="2.9">
      <object ref="Device.IEEE1905.AL.Interface.{i}." requirement="present">
        <parameter ref="SetIntfPowerStateEnabled" requirement="readWrite"/>
        <parameter ref="PowerState" requirement="readWrite"/>
        <parameter ref="VendorPropertiesNumberOfEntries"
            requirement="readOnly"/>
      </object>
      <object ref="Device.IEEE1905.AL.Interface.{i}.VendorProperties.{i}."
          requirement="present">
        <parameter ref="OUI" requirement="readOnly"/>
        <parameter ref="Information" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="IEEE1905InterfaceSelection:1" extends="IEEE1905Device:1"
        version="2.9">
      <object ref="Device.IEEE1905.AL.Interface.{i}." requirement="present">
        <parameter ref="SetIntfPowerStateEnabled" requirement="readWrite"/>
        <parameter ref="PowerState" requirement="readWrite"/>
        <parameter ref="VendorPropertiesNumberOfEntries"
            requirement="readOnly"/>
      </object>
      <object ref="Device.IEEE1905.AL.Interface.{i}.VendorProperties.{i}."
          requirement="present">
        <parameter ref="OUI" requirement="readOnly"/>
        <parameter ref="Information" requirement="readOnly"/>
      </object>
      <object ref="Device.IEEE1905.AL.ForwardingTable." requirement="present">
        <parameter ref="SetForwardingEnabled" requirement="readOnly"/>
        <parameter ref="ForwardingRuleNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}."
          requirement="createDelete">
        <parameter ref="InterfaceList" requirement="readWrite"/>
        <parameter ref="MACDestinationAddress" requirement="readWrite"/>
        <parameter ref="MACDestinationAddressFlag" requirement="readWrite"/>
        <parameter ref="MACSourceAddress" requirement="readWrite"/>
        <parameter ref="MACSourceAddressFlag" requirement="readWrite"/>
        <parameter ref="EtherType" requirement="readWrite"/>
        <parameter ref="EtherTypeFlag" requirement="readWrite"/>
        <parameter ref="Vid" requirement="readWrite"/>
        <parameter ref="VidFlag" requirement="readWrite"/>
        <parameter ref="PCP" requirement="readWrite"/>
        <parameter ref="PCPFlag" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="IEEE1905LinkMetric:1" extends="IEEE1905Device:1"
        version="2.9">
      <object ref="Device.IEEE1905.AL.Interface.{i}." requirement="present">
        <parameter ref="SetIntfPowerStateEnabled" requirement="readWrite"/>
        <parameter ref="PowerState" requirement="readWrite"/>
        <parameter ref="LinkNumberOfEntries" requirement="readOnly"/>
        <parameter ref="VendorPropertiesNumberOfEntries"
            requirement="readOnly"/>
      </object>
      <object ref="Device.IEEE1905.AL.Interface.{i}.VendorProperties.{i}."
          requirement="present">
        <parameter ref="OUI" requirement="readOnly"/>
        <parameter ref="Information" requirement="readOnly"/>
      </object>
      <object ref="Device.IEEE1905.AL.Interface.{i}.Link.{i}."
          requirement="present">
        <parameter ref="InterfaceId" requirement="readOnly"/>
        <parameter ref="IEEE1905Id" requirement="readOnly"/>
        <parameter ref="MediaType" requirement="readOnly"/>
      </object>
      <object ref="Device.IEEE1905.AL.Interface.{i}.Link.{i}.Metric."
          requirement="present">
        <parameter ref="PacketErrors" requirement="readOnly"/>
        <parameter ref="PacketErrorsReceived" requirement="readOnly"/>
        <parameter ref="TransmittedPackets" requirement="readOnly"/>
        <parameter ref="PacketsReceived" requirement="readOnly"/>
        <parameter ref="MACThroughputCapacity" requirement="readOnly"/>
        <parameter ref="LinkAvailability" requirement="readOnly"/>
        <parameter ref="PHYRate" requirement="readOnly"/>
        <parameter ref="RSSI" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="IEEE1905NetworkTopology:1" extends="IEEE1905Device:1"
        version="2.9">
      <object ref="Device.IEEE1905.AL.NetworkTopology." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="MaxChangeLogEntries" requirement="readWrite"/>
        <parameter ref="LastChange" requirement="readOnly"/>
        <parameter ref="IEEE1905DeviceNumberOfEntries" requirement="readOnly"/>
        <parameter ref="ChangeLogNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.IEEE1905.AL.NetworkTopology.ChangeLog.{i}."
          requirement="present">
        <parameter ref="TimeStamp" requirement="readOnly"/>
        <parameter ref="EventType" requirement="readOnly"/>
        <parameter ref="ReporterDeviceId" requirement="readOnly"/>
        <parameter ref="ReporterInterfaceId" requirement="readOnly"/>
        <parameter ref="NeighborType" requirement="readOnly"/>
        <parameter ref="NeighborId" requirement="readOnly"/>
      </object>
      <object ref="Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}."
          requirement="present">
        <parameter ref="IEEE1905Id" requirement="readOnly"/>
        <parameter ref="Version" requirement="readOnly"/>
        <parameter ref="InterfaceNumberOfEntries" requirement="readOnly"/>
        <parameter ref="NonIEEE1905NeighborNumberOfEntries"
            requirement="readOnly"/>
        <parameter ref="IEEE1905NeighborNumberOfEntries"
            requirement="readOnly"/>
        <parameter ref="BridgingTupleNumberOfEntries" requirement="readOnly"/>
      </object>
      <object
          ref="Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.BridgingTuple.{i}."
          requirement="present">
        <parameter ref="InterfaceList" requirement="readOnly"/>
      </object>
      <object
          ref="Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}."
          requirement="present">
        <parameter ref="LocalInterface" requirement="readOnly"/>
        <parameter ref="NeighborDeviceId" requirement="readOnly"/>
      </object>
      <object
          ref="Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}."
          requirement="present">
        <parameter ref="InterfaceId" requirement="readOnly"/>
        <parameter ref="MediaType" requirement="readOnly"/>
        <parameter ref="PowerState" requirement="readOnly"/>
      </object>
      <object
          ref="Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.NonIEEE1905Neighbor.{i}."
          requirement="present">
        <parameter ref="LocalInterface" requirement="readOnly"/>
        <parameter ref="NeighborInterfaceId" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="MQTTClientCon:1" version="2.13">
      <description>
        Provides MQTT client control
      </description>
      <object ref="Device.MQTT." requirement="present">
        <parameter ref="ClientNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.MQTT.Capabilities." requirement="present">
        <parameter ref="ProtocolVersionsSupported" requirement="readOnly"/>
        <parameter ref="TransportProtocolSupported" requirement="readOnly"/>
      </object>
      <object ref="Device.MQTT.Client.{i}." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="ProtocolVersion" requirement="readWrite"/>
        <parameter ref="BrokerAddress" requirement="readWrite"/>
        <parameter ref="BrokerPort" requirement="readWrite"/>
        <parameter ref="CleanSession" requirement="readWrite"/>
        <parameter ref="KeepAliveTime" requirement="readWrite"/>
        <parameter ref="Name" requirement="readWrite"/>
        <parameter ref="ClientID" requirement="readWrite"/>
        <parameter ref="Username" requirement="readWrite"/>
        <parameter ref="Password" requirement="readWrite"/>
        <parameter ref="TransportProtocol" requirement="readWrite"/>
        <parameter ref="MessageRetryTime" requirement="readWrite"/>
        <parameter ref="ConnectRetryTime" requirement="readWrite"/>
        <parameter ref="ConnectRetryIntervalMultiplier"
            requirement="readWrite"/>
        <parameter ref="ConnectRetryMaxInterval" requirement="readWrite"/>
        <parameter ref="ResponseInformation" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="MQTTClientBase:1" version="2.10">
      <description>
        Provides basic MQTT client control and statistics
      </description>
      <object ref="Device.MQTT." requirement="present">
        <parameter ref="ClientNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.MQTT.Capabilities." requirement="present">
        <parameter ref="ProtocolVersionsSupported" requirement="readOnly"/>
      </object>
      <object ref="Device.MQTT.Client.{i}." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="ProtocolVersion" requirement="readWrite"/>
        <parameter ref="BrokerAddress" requirement="readWrite"/>
        <parameter ref="BrokerPort" requirement="readWrite"/>
        <parameter ref="CleanSession" requirement="readWrite"/>
        <parameter ref="KeepAliveTime" requirement="readWrite"/>
      </object>
      <object ref="Device.MQTT.Client.{i}.Stats." requirement="present">
        <parameter ref="BrokerConnectionEstablished" requirement="readOnly"/>
        <parameter ref="MQTTMessagesSent" requirement="readOnly"/>
        <parameter ref="MQTTMessagesReceived" requirement="readOnly"/>
        <parameter ref="ConnectionErrors" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="MQTTClientSubscribe:1" base="MQTTClientBase:1"
        version="2.10">
      <description>
        Adds client subscription control and access to received topics
      </description>
      <object ref="Device.MQTT.Client.{i}." requirement="present">
        <parameter ref="SubscriptionNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.MQTT.Client.{i}.Subscription.{i}."
          requirement="present">
        <parameter ref="Topic" requirement="readWrite"/>
        <parameter ref="QoS" requirement="readOnly"/>
        <parameter ref="Enable" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="MQTTClientExtended:1" base="MQTTClientBase:1"
        dmr:previousProfile="MQTTClientSubscribe:1" version="2.10">
      <description>
        Adds client authentication, will handling and extends statistics
      </description>
      <object ref="Device.MQTT.Client.{i}." requirement="present">
        <parameter ref="Name" requirement="readWrite"/>
        <parameter ref="ClientID" requirement="readWrite"/>
        <parameter ref="Username" requirement="readWrite"/>
        <parameter ref="Password" requirement="readWrite"/>
        <parameter ref="TransportProtocol" requirement="readWrite"/>
        <parameter ref="MessageRetryTime" requirement="readWrite"/>
        <parameter ref="ConnectRetryTime" requirement="readWrite"/>
        <parameter ref="ForceReconnect" requirement="readWrite"/>
        <parameter ref="WillEnable" requirement="readWrite"/>
        <parameter ref="WillTopic" requirement="readWrite"/>
        <parameter ref="WillValue" requirement="readWrite"/>
        <parameter ref="WillQoS" requirement="readWrite"/>
        <parameter ref="WillRetain" requirement="readWrite"/>
      </object>
      <object ref="Device.MQTT.Client.{i}.Stats." requirement="present">
        <parameter ref="LastPublishMessageSent" requirement="readOnly"/>
        <parameter ref="LastPublishMessageReceived" requirement="readOnly"/>
        <parameter ref="PublishSent" requirement="readOnly"/>
        <parameter ref="PublishReceived" requirement="readOnly"/>
        <parameter ref="SubscribeSent" requirement="readOnly"/>
        <parameter ref="UnSubscribeSent" requirement="readOnly"/>
        <parameter ref="PublishErrors" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="MQTTBrokerBase:1" version="2.10">
      <description>
        Provides basic MQTT broker control and statistics
      </description>
      <object ref="Device.MQTT." requirement="present">
        <parameter ref="BrokerNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.MQTT.Broker.{i}." requirement="present">
        <parameter ref="Name" requirement="readWrite"/>
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="Port" requirement="readWrite"/>
      </object>
      <object ref="Device.MQTT.Broker.{i}.Stats." requirement="present">
        <parameter ref="TotalNumberOfClients" requirement="readOnly"/>
        <parameter ref="NumberOfActiveClients" requirement="readOnly"/>
        <parameter ref="MQTTMessagesSent" requirement="readOnly"/>
        <parameter ref="MQTTMessagesReceived" requirement="readOnly"/>
        <parameter ref="ConnectionErrors" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="MQTTBrokerBridgeBase:1" base="MQTTBrokerBase:1"
        version="2.10">
      <description>
        Adds parameters for MQTT network interconnection with Bridges
      </description>
      <object ref="Device.MQTT.Broker.{i}." requirement="present">
        <parameter ref="BridgeNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.MQTT.Broker.{i}.Bridge.{i}." requirement="present">
        <parameter ref="Name" requirement="readWrite"/>
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="ServerConnection" requirement="readOnly"/>
        <parameter ref="ServerNumberOfEntries" requirement="readOnly"/>
        <parameter ref="SubscriptionNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.MQTT.Broker.{i}.Bridge.{i}.Server.{i}."
          requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Priority" requirement="readWrite"/>
        <parameter ref="Address" requirement="readWrite"/>
        <parameter ref="Port" requirement="readWrite"/>
      </object>
      <object ref="Device.MQTT.Broker.{i}.Bridge.{i}.Subscription.{i}."
          requirement="present">
        <parameter ref="Topic" requirement="readWrite"/>
        <parameter ref="Direction" requirement="readWrite"/>
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="QoS" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="MQTTBrokerExtended:1" base="MQTTBrokerBase:1"
        version="2.10">
      <description>
        Adds client authentication and extends statistics
      </description>
      <object ref="Device.MQTT.Broker.{i}." requirement="present">
        <parameter ref="Username" requirement="readWrite"/>
        <parameter ref="Password" requirement="readWrite"/>
      </object>
      <object ref="Device.MQTT.Broker.{i}.Stats." requirement="present">
        <parameter ref="NumberOfInactiveClients" requirement="readOnly"/>
        <parameter ref="PublishSent" requirement="readOnly"/>
        <parameter ref="PublishReceived" requirement="readOnly"/>
        <parameter ref="PublishErrors" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="LEDBasic:1" version="2.11">
      <object ref="Device.LEDs." requirement="present">
        <parameter ref="LEDNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.LEDs.LED.{i}." requirement="present">
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Reason" requirement="readOnly"/>
        <parameter ref="CyclePeriodRepetitions" requirement="readOnly"/>
        <parameter ref="Location" requirement="readOnly"/>
        <parameter ref="RelativeXPosition" requirement="readOnly"/>
        <parameter ref="RelativeYPosition" requirement="readOnly"/>
        <parameter ref="CycleElementNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.LEDs.LED.{i}.CycleElement.{i}."
          requirement="present">
        <parameter ref="Order" requirement="readOnly"/>
        <parameter ref="Color" requirement="readOnly"/>
        <parameter ref="Duration" requirement="readOnly"/>
        <parameter ref="FadeInterval" requirement="readOnly"/>
      </object>
      <object ref="Device.LEDs.LED.{i}.CurrentCycleElement."
          requirement="present">
        <parameter ref="CycleElementReference" requirement="readOnly"/>
        <parameter ref="Color" requirement="readOnly"/>
        <parameter ref="Duration" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="LEDAdv:1" version="2.11">
      <object ref="Device.LEDs." requirement="present">
        <parameter ref="LEDNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.LEDs.LED.{i}." requirement="present">
        <parameter ref="Name" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Reason" requirement="readOnly"/>
        <parameter ref="CyclePeriodRepetitions" requirement="readOnly"/>
        <parameter ref="Location" requirement="readOnly"/>
        <parameter ref="RelativeXPosition" requirement="readOnly"/>
        <parameter ref="RelativeYPosition" requirement="readOnly"/>
        <parameter ref="CycleElementNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.LEDs.LED.{i}.CycleElement.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Order" requirement="readWrite"/>
        <parameter ref="Color" requirement="readWrite"/>
        <parameter ref="Duration" requirement="readWrite"/>
        <parameter ref="FadeInterval" requirement="readWrite"/>
      </object>
      <object ref="Device.LEDs.LED.{i}.CurrentCycleElement."
          requirement="present">
        <parameter ref="CycleElementReference" requirement="readOnly"/>
        <parameter ref="Color" requirement="readOnly"/>
        <parameter ref="Duration" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="BASAPM:1" version="2.12">
      <object ref="Device.BASAPM." requirement="present">
        <parameter ref="MeasurementEndpointNumberOfEntries"
            requirement="readOnly"/>
      </object>
      <object ref="Device.BASAPM.MeasurementEndpoint.{i}."
          requirement="createDelete">
        <parameter ref="Alias" requirement="writeOnceReadOnly"/>
        <parameter ref="MeasurementAgent" requirement="readWrite"/>
        <parameter ref="DeviceOwnership" requirement="readWrite"/>
        <parameter ref="OperationalDomain" requirement="readWrite"/>
        <parameter ref="InternetDomain" requirement="readWrite"/>
        <parameter ref="UseMeasurementEndpointInReports"
            requirement="readWrite"/>
      </object>
      <object ref="Device.BASAPM.MeasurementEndpoint.{i}.ISPDevice."
          requirement="present">
        <parameter ref="ReferencePoint" requirement="readWrite"/>
        <parameter ref="GeographicalLocation" requirement="readWrite"/>
      </object>
      <object ref="Device.BASAPM.MeasurementEndpoint.{i}.CustomerDevice."
          requirement="present">
        <parameter ref="EquipmentIdentifier" requirement="readWrite"/>
        <parameter ref="CustomerIdentifier" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="LMAPPreconfiguration:1" version="2.12">
      <object ref="Device.LMAP." requirement="present">
        <parameter ref="MeasurementAgentNumberOfEntries"
            requirement="readOnly"/>
      </object>
      <object ref="Device.LMAP.MeasurementAgent.{i}."
          requirement="createDelete">
        <parameter ref="Alias" requirement="writeOnceReadOnly"/>
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Version" requirement="readOnly"/>
        <parameter ref="CapabilityTags" requirement="readOnly"/>
        <parameter ref="Identifier" requirement="readWrite"/>
        <parameter ref="PublicCredential" requirement="readWrite"/>
        <parameter ref="PrivateCredential" requirement="readWrite"/>
        <parameter ref="EventLog" requirement="readOnly"/>
        <parameter ref="TaskCapabilityNumberOfEntries" requirement="readOnly"/>
        <parameter ref="ScheduleNumberOfEntries" requirement="readOnly"/>
        <parameter ref="TaskNumberOfEntries" requirement="readOnly"/>
        <parameter ref="CommunicationChannelNumberOfEntries"
            requirement="readOnly"/>
      </object>
      <object ref="Device.LMAP.MeasurementAgent.{i}.Controller."
          requirement="present">
        <parameter ref="ControllerTimeout" requirement="readWrite"/>
        <parameter ref="ControlSchedules" requirement="readWrite"/>
        <parameter ref="ControlTasks" requirement="readWrite"/>
        <parameter ref="ControlChannels" requirement="readWrite"/>
      </object>
      <object ref="Device.LMAP.MeasurementAgent.{i}.TaskCapability.{i}."
          requirement="present">
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="Version" requirement="readOnly"/>
        <parameter ref="TaskCapabilityRegistryNumberOfEntries"
            requirement="readOnly"/>
      </object>
      <object
          ref="Device.LMAP.MeasurementAgent.{i}.TaskCapability.{i}.Registry.{i}."
          requirement="present">
        <parameter ref="RegistryEntry" requirement="readOnly"/>
        <parameter ref="Roles" requirement="readOnly"/>
      </object>
      <object ref="Device.LMAP.MeasurementAgent.{i}.Schedule.{i}."
          requirement="createDelete">
        <parameter ref="Alias" requirement="writeOnceReadOnly"/>
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Name" requirement="readWrite"/>
        <parameter ref="Start" requirement="readWrite"/>
        <parameter ref="End" requirement="readWrite"/>
        <parameter ref="Duration" requirement="readWrite"/>
        <parameter ref="Tags" requirement="readWrite"/>
        <parameter ref="SuppressionTags" requirement="readWrite"/>
        <parameter ref="ExecutionMode" requirement="readWrite"/>
        <parameter ref="ActionNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}."
          requirement="createDelete">
        <parameter ref="Alias" requirement="writeOnceReadOnly"/>
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Order" requirement="readWrite"/>
        <parameter ref="Task" requirement="readWrite"/>
        <parameter ref="SuppressionTags" requirement="readWrite"/>
        <parameter ref="Tags" requirement="readWrite"/>
      </object>
      <object
          ref="Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Option.{i}."
          requirement="createDelete">
        <parameter ref="Alias" requirement="writeOnceReadOnly"/>
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Order" requirement="readWrite"/>
        <parameter ref="Name" requirement="readWrite"/>
        <parameter ref="Value" requirement="readOnly"/>
      </object>
      <object ref="Device.LMAP.MeasurementAgent.{i}.Task.{i}."
          requirement="createDelete">
        <parameter ref="Alias" requirement="writeOnceReadOnly"/>
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Name" requirement="readWrite"/>
        <parameter ref="Tags" requirement="readWrite"/>
        <parameter ref="OptionNumberOfEntries" requirement="readOnly"/>
        <parameter ref="RegistryNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.LMAP.MeasurementAgent.{i}.Task.{i}.Registry.{i}."
          requirement="createDelete">
        <parameter ref="Alias" requirement="writeOnceReadOnly"/>
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="RegistryEntry" requirement="readWrite"/>
        <parameter ref="Roles" requirement="readWrite"/>
      </object>
      <object ref="Device.LMAP.MeasurementAgent.{i}.Task.{i}.Option.{i}."
          requirement="createDelete">
        <parameter ref="Alias" requirement="writeOnceReadOnly"/>
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Order" requirement="readWrite"/>
        <parameter ref="Name" requirement="readWrite"/>
        <parameter ref="Value" requirement="readOnly"/>
      </object>
      <object ref="Device.LMAP.MeasurementAgent.{i}.CommunicationChannel.{i}."
          requirement="createDelete">
        <parameter ref="Alias" requirement="writeOnceReadOnly"/>
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Name" requirement="readWrite"/>
        <parameter ref="UseBulkDataProfile" requirement="readWrite"/>
        <parameter ref="Target" requirement="readWrite"/>
        <parameter ref="TargetPublicCredential" requirement="readWrite"/>
        <parameter ref="Interface" requirement="readWrite"/>
      </object>
      <object ref="Device.LMAP.Event.{i}." requirement="createDelete">
        <parameter ref="Alias" requirement="writeOnceReadOnly"/>
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Name" requirement="readWrite"/>
        <parameter ref="Type" requirement="readWrite"/>
        <parameter ref="RandomnessSpread" requirement="readWrite"/>
      </object>
      <object ref="Device.LMAP.Event.{i}.PeriodicTimer." requirement="present">
        <parameter ref="StartTime" requirement="readWrite"/>
        <parameter ref="EndTime" requirement="readWrite"/>
        <parameter ref="Interval" requirement="readWrite"/>
      </object>
      <object ref="Device.LMAP.Event.{i}.CalendarTimer." requirement="present">
        <parameter ref="StartTime" requirement="readWrite"/>
        <parameter ref="EndTime" requirement="readWrite"/>
        <parameter ref="ScheduleMonths" requirement="readWrite"/>
        <parameter ref="ScheduleDaysOfMonth" requirement="readWrite"/>
        <parameter ref="ScheduleDaysOfWeek" requirement="readWrite"/>
        <parameter ref="ScheduleHoursOfDay" requirement="readWrite"/>
        <parameter ref="ScheduleMinutesOfHour" requirement="readWrite"/>
        <parameter ref="ScheduleSecondsOfMinute" requirement="readWrite"/>
        <parameter ref="EnableScheduleTimezoneOffset" requirement="readWrite"/>
        <parameter ref="ScheduleTimezoneOffset" requirement="readWrite"/>
      </object>
      <object ref="Device.LMAP.Event.{i}.OneOff." requirement="present">
        <parameter ref="StartTime" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="LMAPController:1" extends="LMAPPreconfiguration:1"
        version="2.12">
      <object ref="Device.LMAP.MeasurementAgent.{i}."
          requirement="createDelete">
        <parameter ref="LastStarted" requirement="readOnly"/>
        <parameter ref="GroupIdentifier" requirement="readWrite"/>
        <parameter ref="MeasurementPoint" requirement="readWrite"/>
        <parameter ref="UseAgentIdentifierInReports" requirement="readWrite"/>
        <parameter ref="UseGroupIdentifierInReports" requirement="readWrite"/>
        <parameter ref="UseMeasurementPointInReports" requirement="readWrite"/>
        <parameter ref="InstructionNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.LMAP.MeasurementAgent.{i}.Controller."
          requirement="present">
        <parameter ref="ControllerTimeout" requirement="readWrite"/>
      </object>
      <object ref="Device.LMAP.MeasurementAgent.{i}.Schedule.{i}."
          requirement="createDelete">
        <parameter ref="State" requirement="readOnly"/>
        <parameter ref="LastInvocation" requirement="readOnly"/>
        <parameter ref="Storage" requirement="readOnly"/>
      </object>
      <object ref="Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Stats."
          requirement="present">
        <parameter ref="Invocations" requirement="readOnly"/>
        <parameter ref="Suppressions" requirement="readOnly"/>
        <parameter ref="Overlaps" requirement="readOnly"/>
        <parameter ref="Failures" requirement="readOnly"/>
      </object>
      <object ref="Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}."
          requirement="createDelete">
        <parameter ref="State" requirement="readOnly"/>
        <parameter ref="LastInvocation" requirement="readOnly"/>
        <parameter ref="Storage" requirement="readOnly"/>
        <parameter ref="LastSuccessfulCompletion" requirement="readOnly"/>
        <parameter ref="LastSuccessfulStatusCode" requirement="readOnly"/>
        <parameter ref="LastSuccessfulMessage" requirement="readOnly"/>
        <parameter ref="LastFailedCompletion" requirement="readOnly"/>
        <parameter ref="LastFailedStatusCode" requirement="readOnly"/>
        <parameter ref="LastFailedMessage" requirement="readOnly"/>
      </object>
      <object
          ref="Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Stats."
          requirement="present">
        <parameter ref="Invocations" requirement="readOnly"/>
        <parameter ref="Suppressions" requirement="readOnly"/>
        <parameter ref="Overlaps" requirement="readOnly"/>
        <parameter ref="Failures" requirement="readOnly"/>
      </object>
      <object ref="Device.LMAP.MeasurementAgent.{i}.Instruction.{i}."
          requirement="createDelete">
        <parameter ref="Alias" requirement="writeOnceReadOnly"/>
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="LastChange" requirement="readOnly"/>
        <parameter ref="InstructionSchedules" requirement="readWrite"/>
        <parameter ref="InstructionTasks" requirement="readWrite"/>
        <parameter ref="ReportChannels" requirement="readWrite"/>
        <parameter ref="MeasurementSuppressionNumberOfEntries"
            requirement="readOnly"/>
      </object>
      <object
          ref="Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.MeasurementSuppression.{i}."
          requirement="createDelete">
        <parameter ref="Alias" requirement="writeOnceReadOnly"/>
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Name" requirement="readWrite"/>
        <parameter ref="State" requirement="readOnly"/>
        <parameter ref="StopRunning" requirement="readWrite"/>
        <parameter ref="Start" requirement="readWrite"/>
        <parameter ref="End" requirement="readWrite"/>
        <parameter ref="SuppressionMatch" requirement="readWrite"/>
      </object>
      <object ref="Device.LMAP.Event.{i}." requirement="createDelete">
        <parameter ref="CycleInterval" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="LMAPCollector:1" version="2.12">
      <object ref="Device.LMAP.Report.{i}." requirement="present">
        <parameter ref="ReportDate" requirement="readOnly"/>
        <parameter ref="AgentIdentifier" requirement="readOnly"/>
        <parameter ref="GroupIdentifier" requirement="readOnly"/>
        <parameter ref="MeasurementPoint" requirement="readOnly"/>
        <parameter ref="ResultNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.LMAP.Report.{i}.Result.{i}." requirement="present">
        <parameter ref="TaskName" requirement="readOnly"/>
        <parameter ref="ScheduleName" requirement="readOnly"/>
        <parameter ref="ActionName" requirement="readOnly"/>
        <parameter ref="EventTime" requirement="readOnly"/>
        <parameter ref="CycleNumber" requirement="readOnly"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Tags" requirement="readOnly"/>
        <parameter ref="OptionNumberOfEntries" requirement="readOnly"/>
        <parameter ref="ResultConflictNumberOfEntries" requirement="readOnly"/>
        <parameter ref="ResultReportTableNumberOfEntries"
            requirement="readOnly"/>
      </object>
      <object ref="Device.LMAP.Report.{i}.Result.{i}.Option.{i}."
          requirement="present">
        <parameter ref="Order" requirement="readOnly"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="Value" requirement="readOnly"/>
      </object>
      <object ref="Device.LMAP.Report.{i}.Result.{i}.Conflict.{i}."
          requirement="present">
        <parameter ref="TaskName" requirement="readOnly"/>
        <parameter ref="ScheduleName" requirement="readOnly"/>
        <parameter ref="ActionName" requirement="readOnly"/>
      </object>
      <object ref="Device.LMAP.Report.{i}.Result.{i}.ReportTable.{i}."
          requirement="present">
        <parameter ref="ColumnLabels" requirement="readOnly"/>
        <parameter ref="ResultReportRowNumberOfEntries" requirement="readOnly"/>
        <parameter ref="RegistryNumberOfEntries" requirement="readOnly"/>
      </object>
      <object
          ref="Device.LMAP.Report.{i}.Result.{i}.ReportTable.{i}.ResultRow.{i}."
          requirement="present">
        <parameter ref="Values" requirement="readOnly"/>
      </object>
      <object
          ref="Device.LMAP.Report.{i}.Result.{i}.ReportTable.{i}.Registry.{i}."
          requirement="present">
        <parameter ref="RegistryEntry" requirement="readOnly"/>
        <parameter ref="Roles" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="Logical:1" version="2.16">
      <object ref="Device.Logical." requirement="present">
        <parameter ref="InterfaceNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.Logical.Interface.{i}." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Alias" requirement="writeOnceReadOnly"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="LastChange" requirement="readOnly"/>
        <parameter ref="LowerLayers" requirement="readWrite"/>
      </object>
      <object ref="Device.Logical.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"/>
      </object>
    </profile>

    <profile name="Schedules:1" version="2.18">
      <object ref="Device.Schedules." requirement="present">
        <parameter ref="ScheduleNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.Schedules.Schedule.{i}." requirement="present">
        <parameter ref="Alias" requirement="writeOnceReadOnly"/>
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Day" requirement="readWrite"/>
        <parameter ref="StartTime" requirement="readWrite"/>
        <parameter ref="Duration" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="RadSecProxy:1" version="2.19">
      <object ref="Device.RadSecProxy." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="ListenConfigNumberOfEntries" requirement="readOnly"/>
        <parameter ref="SourceConfigNumberOfEntries" requirement="readOnly"/>
        <parameter ref="RealmNumberOfEntries" requirement="readOnly"/>
        <parameter ref="TLSNumberOfEntries" requirement="readOnly"/>
        <parameter ref="ServerNumberOfEntries" requirement="readOnly"/>
        <parameter ref="ClientNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.RadSecProxy.ListenConfig.{i}." requirement="present">
        <parameter ref="Protocol" requirement="readWrite"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="Port" requirement="readWrite"/>
      </object>
      <object ref="Device.RadSecProxy.Realm.{i}." requirement="createDelete">
        <parameter ref="Pattern" requirement="readWrite"/>
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Server" requirement="readWrite"/>
        <parameter ref="AccountingServer" requirement="readWrite"/>
        <parameter ref="AccountingResponse" requirement="readWrite"/>
      </object>
      <object ref="Device.RadSecProxy.TLS.{i}." requirement="createDelete">
        <parameter ref="CABundle" requirement="readWrite"/>
        <parameter ref="Certificate" requirement="readWrite"/>
        <parameter ref="TLSVersion" requirement="readWrite"/>
      </object>
      <object ref="Device.RadSecProxy.Server.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Address" requirement="readWrite"/>
        <parameter ref="Port" requirement="readWrite"/>
        <parameter ref="Protocol" requirement="readWrite"/>
        <parameter ref="Secret" requirement="readWrite"/>
        <parameter ref="TLS" requirement="readWrite"/>
      </object>
      <object ref="Device.RadSecProxy.Client.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Address" requirement="readWrite"/>
        <parameter ref="Protocol" requirement="readWrite"/>
        <parameter ref="Secret" requirement="readWrite"/>
        <parameter ref="TLS" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="_Baseline:1" status="deleted" version="2.0">
      <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.LANConfigSecurity." requirement="present"
          status="deleted">
        <description>
          {{deleted|2.15|because it's not appropriate for the ''Baseline''
          profile}}
        </description>
        <parameter ref="ConfigPassword" requirement="readWrite"
            status="deleted">
          <description>
            {{deleted|2.15|because it's not appropriate for the ''Baseline''
            profile}}
          </description>
        </parameter>
      </object>
      <object ref="Device.DNS." requirement="present"/>
      <object ref="Device.DNS.Client." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="ServerNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.DNS.Client.Server.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="DNSServer" requirement="readWrite"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="Type" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="_Baseline:2" base="_Baseline:1" version="2.2"
        status="deleted">
      <object ref="Device.InterfaceStack.{i}." requirement="present">
        <parameter ref="HigherLayer" requirement="readOnly"/>
        <parameter ref="LowerLayer" requirement="readOnly"/>
      </object>
      <object ref="Device.DNS." requirement="present">
        <parameter ref="SupportedRecordTypes" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="_Baseline:3" base="_Baseline:2" version="2.4"
        status="deleted">
      <object ref="Device." requirement="present">
        <parameter ref="RootDataModelVersion" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="_Baseline:4" version="2.15">
      <object ref="Device." requirement="present">
        <parameter ref="RootDataModelVersion" requirement="readOnly"/>
        <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.InterfaceStack.{i}." requirement="present">
        <parameter ref="HigherLayer" requirement="readOnly"/>
        <parameter ref="LowerLayer" requirement="readOnly"/>
      </object>
      <object ref="Device.DNS." requirement="present">
        <parameter ref="SupportedRecordTypes" requirement="readOnly"/>
      </object>
      <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="ETSIM2MSCLBaseline:1" version="2.6">
      <object ref="Device.ETSIM2M.SCL.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="AnnouncedToSCLList" requirement="readWrite"/>
        <parameter ref="SAFPolicySetNumberOfEntries" requirement="readOnly"/>
        <parameter ref="AreaNwkInstanceNumberOfEntries" requirement="readOnly"/>
        <parameter ref="AreaNwkDeviceInfoInstanceNumberOfEntries"
            requirement="readOnly"/>
      </object>
      <object ref="Device.ETSIM2M.SCL.{i}.Discovery." requirement="present">
        <parameter ref="MaxNumberOfDiscovRecords" requirement="readWrite"/>
        <parameter ref="MaxSizeOfDiscovAnswer" requirement="readWrite"/>
      </object>
      <object ref="Device.ETSIM2M.SCL.{i}.Reregistration."
          requirement="present">
        <parameter ref="RegTargetNSCLList" requirement="readWrite"/>
        <parameter ref="RegSearchStrings" requirement="readWrite"/>
        <parameter ref="RegAccessRightID" requirement="readWrite"/>
        <parameter ref="RegExpirationDuration" requirement="readWrite"/>
      </object>
      <object ref="Device.ETSIM2M.SCL.{i}.Reregistration.ActionStatus."
          requirement="present">
        <parameter ref="Progress" requirement="readOnly"/>
        <parameter ref="FinalStatus" requirement="readOnly"/>
      </object>
      <object ref="Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="PolicyScope" requirement="readWrite"/>
        <parameter ref="ANPPolicyNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="ANName" requirement="readWrite"/>
        <parameter ref="BlockPeriodNumberOfEntries" requirement="readOnly"/>
        <parameter ref="RequestCategoryNumberOfEntries" requirement="readOnly"/>
      </object>
      <object
          ref="Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.BlockPeriod.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="FailedAttempts" requirement="readWrite"/>
        <parameter ref="BlockDuration" requirement="readWrite"/>
      </object>
      <object
          ref="Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="RCAT" requirement="readWrite"/>
        <parameter ref="ScheduleNumberOfEntries" requirement="readOnly"/>
      </object>
      <object
          ref="Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Schedules" requirement="readWrite"/>
        <parameter ref="AbsTimeSpanNumberOfEntries" requirement="readOnly"/>
      </object>
      <object
          ref="Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}.AbsTimeSpan.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="StartTime" requirement="readWrite"/>
        <parameter ref="EndTime" requirement="readWrite"/>
      </object>
      <object ref="Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy."
          requirement="present">
        <parameter ref="DefaultRCATValue" requirement="readWrite"/>
        <parameter ref="RequestCategoryNumberOfEntries" requirement="readOnly"/>
      </object>
      <object
          ref="Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.RequestCategory.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="RCAT" requirement="readWrite"/>
        <parameter ref="TolerableDelay" requirement="readWrite"/>
        <parameter ref="Thresh" requirement="readWrite"/>
        <parameter ref="Mem" requirement="readWrite"/>
        <parameter ref="RankedANList" requirement="readWrite"/>
      </object>
      <object ref="Device.ETSIM2M.SCL.{i}.AreaNwkInstance.{i}."
          requirement="present">
        <parameter ref="ID" requirement="readOnly"/>
        <parameter ref="AreaNwkType" requirement="readOnly"/>
        <parameter ref="ListOfDevices" requirement="readOnly"/>
      </object>
      <object ref="Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}."
          requirement="present">
        <parameter ref="AreaNwkInstance" requirement="readOnly"/>
        <parameter ref="Host" requirement="readOnly"/>
        <parameter ref="ListOfDeviceNeighbors" requirement="readOnly"/>
        <parameter ref="ListOfDeviceApplications" requirement="readOnly"/>
        <parameter ref="SleepInterval" requirement="readWrite"/>
        <parameter ref="SleepDuration" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Active" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="StandbyPolicy:1" dmr:previousProfile="ETSIM2MSCLBaseline:1"
        version="2.7">
      <description>
        Note that support for this profile implies support for the requirements
        of {{bibref|TR-069|Annex L}}.
      </description>
      <object ref="Device.ManagementServer.StandbyPolicy."
          requirement="present">
        <parameter ref="CRUnawarenessMaxDuration" requirement="readWrite"/>
        <parameter ref="MaxMissedPeriodic" requirement="readWrite"/>
        <parameter ref="NotifyMissedScheduled" requirement="readWrite"/>
        <parameter ref="NetworkAwarenessCapable" requirement="readOnly"/>
        <parameter ref="SelfTimerCapable" requirement="readOnly"/>
        <parameter ref="CRAwarenessRequested" requirement="readWrite"/>
        <parameter ref="PeriodicAwarenessRequested" requirement="readWrite"/>
        <parameter ref="ScheduledAwarenessRequested" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="MoCA_Aca:1" version="2.17"
        id="mocaIfAcaOptionalGroup/1.3.6.1.4.1.31621.1.2.2.2.5">
      <description>
        Parameters to control ACA (Alternate Channel Assessment) for the MoCA
        interface.
      </description>
      <object ref="Device.MoCA.Interface.{i}.Aca." requirement="present">
        <parameter ref="DiagnosticsState" requirement="readWrite"/>
        <parameter ref="NodeID" requirement="readWrite"/>
        <parameter ref="Type" requirement="readWrite"/>
        <parameter ref="Channel" requirement="readWrite"/>
        <parameter ref="ReportNodeMask" requirement="readWrite"/>
        <parameter ref="TotalRxPower" requirement="readOnly"/>
        <parameter ref="PowerProfile" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="MoCA_Trap:1" version="2.17"
        id="mocaTrapOptionalGroup/1.3.6.1.4.1.31621.1.2.2.2.19">
      <description>
        Notifications for bandwidth threshold in the MoCA network.
      </description>
      <object ref="Device.MoCA.Interface.{i}." requirement="present">
        <parameter ref="BelowPhyThresholdTrap" requirement="readOnly"/>
        <parameter ref="AbovePhyThresholdTrap" requirement="readOnly"/>
        <parameter ref="StatusChangeTrap" requirement="readOnly"/>
        <parameter ref="NumNodesChangeTrap" requirement="readOnly"/>
        <parameter ref="MrRstSuccessTrap" requirement="readOnly"/>
        <parameter ref="MrNetworkSuccessTrap" requirement="readOnly"/>
        <parameter ref="MrNetworkFailTrap" requirement="readOnly"/>
        <parameter ref="PowerStateBcstRecTrap" requirement="readOnly"/>
        <parameter ref="PowerStateM0NcTrap" requirement="readOnly"/>
        <parameter ref="PowerStateNc1xTrap" requirement="readOnly"/>
        <parameter ref="PowerStateRespTrap" requirement="readOnly"/>
        <parameter ref="PowerStateUcstPenTrap" requirement="readOnly"/>
        <parameter ref="PowerStateTrnsReqTrap" requirement="readOnly"/>
        <parameter ref="PowerStateWupUrTrap" requirement="readOnly"/>
        <parameter ref="LmoStatusTrap" requirement="readOnly"/>
        <parameter ref="LinkFailureTrap" requirement="readOnly"/>
        <parameter ref="ConnectedNodesChangeTrap" requirement="readOnly"/>
        <parameter ref="MgntEntityNetwIePayloadRecTrap" requirement="readOnly"/>
        <parameter ref="MpsInitScanRecTrap" requirement="readOnly"/>
        <parameter ref="MpsPairFailTrap" requirement="readOnly"/>
        <parameter ref="MpsPrivacyChangedTrap" requirement="readOnly"/>
        <parameter ref="NcPrivacySupportedRecTrap" requirement="readOnly"/>
        <parameter ref="NetworkNameRecTrap" requirement="readOnly"/>
        <parameter ref="NodeDropAdmFailureTrap" requirement="readOnly"/>
        <parameter ref="NodeDropNcTrap" requirement="readOnly"/>
        <parameter ref="NodeDropMpsTriggeredTrap" requirement="readOnly"/>
        <parameter ref="NodeDropNcChgTrap" requirement="readOnly"/>
      </object>
    </profile>

    <profile
        name="MoCA_Mandatory:1"
        version="2.17"
        id="mocaMIBCompliance/1.3.6.1.4.1.31621.1.2.2.1.1"
        extends="
          MoCA_Status:1
          MoCA_Stats:1
          MoCA_FlowStats:1
          MoCA_Node:1
          MoCA_Mesh:1">
      <description>
        The compliance statement for the mandatory groups.
      </description>
    </profile>

    <profile name="DownloadTCP:1" version="2.0">
      <object ref="Device.IP.Diagnostics.DownloadDiagnostics."
          requirement="present">
        <parameter ref="TCPOpenRequestTime" requirement="readOnly"/>
        <parameter ref="TCPOpenResponseTime" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="Upload:1" version="2.0">
      <object ref="Device.IP.Diagnostics." requirement="present">
        <parameter ref="IPv4UploadDiagnosticsSupported" requirement="readOnly"/>
        <parameter ref="IPv6UploadDiagnosticsSupported" requirement="readOnly"/>
      </object>
      <object ref="Device.IP.Diagnostics.UploadDiagnostics."
          requirement="present">
        <parameter ref="DiagnosticsState" requirement="readWrite"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="UploadURL" requirement="readWrite"/>
        <parameter ref="UploadTransports" requirement="readOnly"/>
        <parameter ref="DSCP" requirement="readWrite"/>
        <parameter ref="EthernetPriority" requirement="readWrite"/>
        <parameter ref="ROMTime" requirement="readOnly"/>
        <parameter ref="BOMTime" requirement="readOnly"/>
        <parameter ref="EOMTime" requirement="readOnly"/>
        <parameter ref="TestFileLength" requirement="readOnly"/>
        <parameter ref="TotalBytesSent" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="UploadTCP:1" version="2.0">
      <object ref="Device.IP.Diagnostics.UploadDiagnostics."
          requirement="present">
        <parameter ref="TCPOpenRequestTime" requirement="readOnly"/>
        <parameter ref="TCPOpenResponseTime" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="NSLookupDiag:1" version="2.0">
      <object ref="Device.DNS.Diagnostics.NSLookupDiagnostics."
          requirement="present">
        <parameter ref="DiagnosticsState" requirement="readWrite"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="HostName" requirement="readWrite"/>
        <parameter ref="DNSServer" requirement="readWrite"/>
        <parameter ref="Timeout" requirement="readWrite"/>
        <parameter ref="NumberOfRepetitions" requirement="readWrite"/>
        <parameter ref="SuccessCount" requirement="readOnly"/>
        <parameter ref="ResultNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.DNS.Diagnostics.NSLookupDiagnostics.Result.{i}."
          requirement="present">
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="AnswerType" requirement="readOnly"/>
        <parameter ref="HostNameReturned" requirement="readOnly"/>
        <parameter ref="IPAddresses" requirement="readOnly"/>
        <parameter ref="DNSServerIP" requirement="readOnly"/>
        <parameter ref="ResponseTime" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="IPLayerCapacityTest:2"
        dmr:previousProfile="IPLayerCapacity:2" version="2.17">
      <object ref="Device.IP.Diagnostics." requirement="present">
        <parameter ref="IPLayerCapacitySupported" requirement="readOnly"/>
      </object>
      <object ref="Device.IP.Diagnostics.IPLayerCapacityMetrics."
          requirement="present">
        <parameter ref="DiagnosticsState" requirement="readWrite"/>
        <parameter ref="IPLayerCapSupportedSoftwareVersion"
            requirement="readOnly"/>
        <parameter ref="IPLayerCapSupportedControlProtocolVersion"
            requirement="readOnly"/>
        <parameter ref="IPLayerCapSupportedMetrics" requirement="readOnly"/>
        <parameter ref="Role" requirement="readWrite"/>
        <parameter ref="ServerList" requirement="readOnly"/>
        <parameter ref="JumboFramesPermitted" requirement="readOnly"/>
        <parameter ref="DSCP" requirement="readWrite"/>
        <parameter ref="TestType" requirement="readWrite"/>
        <parameter ref="IPDVEnable" requirement="readWrite"/>
        <parameter ref="TestSubInterval" requirement="readWrite"/>
        <parameter ref="StatusFeedbackInterval" requirement="readWrite"/>
        <parameter ref="SeqErrThresh" requirement="readWrite"/>
        <parameter ref="ReordDupIgnoreEnable" requirement="readOnly"/>
        <parameter ref="LowerThresh" requirement="readWrite"/>
        <parameter ref="UpperThresh" requirement="readWrite"/>
        <parameter ref="HighSpeedDelta" requirement="readWrite"/>
        <parameter ref="SlowAdjThresh" requirement="readWrite"/>
        <parameter ref="MaxIPLayerCapacity" requirement="readOnly"/>
        <parameter ref="TimeOfMax" requirement="readOnly"/>
        <parameter ref="MaxETHCapacityNoFCS" requirement="readOnly"/>
        <parameter ref="MaxETHCapacityWithFCS" requirement="readOnly"/>
        <parameter ref="MaxETHCapacityWithFCSVLAN" requirement="readOnly"/>
        <parameter ref="LossRatioAtMax" requirement="readOnly"/>
        <parameter ref="RTTRangeAtMax" requirement="readOnly"/>
        <parameter ref="PDVRangeAtMax" requirement="readOnly"/>
        <parameter ref="IPLayerCapacitySummary" requirement="readOnly"/>
        <parameter ref="LossRatioSummary" requirement="readOnly"/>
        <parameter ref="MinRTTSummary" requirement="readOnly"/>
        <parameter ref="ActiveFlows" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="AutonXferComplPolicy:1" version="2.0"
        dmr:previousProfile="TempStatusAdv:2">
      <object ref="Device.ManagementServer.AutonomousTransferCompletePolicy."
          requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="TransferTypeFilter" requirement="readWrite"/>
        <parameter ref="FileTypeFilter" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="DownloadAnnounce:1" version="2.0"
        dmr:previousProfile="PeriodicStatsAdv:1">
      <object ref="Device.ManagementServer.DownloadAvailability."
          requirement="present"/>
      <object ref="Device.ManagementServer.DownloadAvailability.Announcement."
          requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="GroupNumberOfEntries" requirement="readOnly"/>
      </object>
      <object
          ref="Device.ManagementServer.DownloadAvailability.Announcement.Group.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="URL" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="DownloadQuery:1" version="2.0">
      <object ref="Device.ManagementServer.DownloadAvailability."
          requirement="present"/>
      <object ref="Device.ManagementServer.DownloadAvailability.Query."
          requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="URL" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="Baseline:1" extends="_Baseline:1" status="deleted"
        version="2.0">
      <object ref="Device.ManagementServer." requirement="present">
        <parameter ref="URL" requirement="readWrite"/>
        <parameter ref="Username" requirement="readWrite"/>
        <parameter ref="Password" requirement="readWrite"/>
        <parameter ref="PeriodicInformEnable" requirement="readWrite"/>
        <parameter ref="PeriodicInformInterval" requirement="readWrite"/>
        <parameter ref="PeriodicInformTime" requirement="readWrite"/>
        <parameter ref="ParameterKey" requirement="readOnly"/>
        <parameter ref="ConnectionRequestURL" requirement="readOnly"/>
        <parameter ref="ConnectionRequestUsername" requirement="readWrite"/>
        <parameter ref="ConnectionRequestPassword" requirement="readWrite"/>
        <parameter ref="UpgradesManaged" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="Baseline:2" base="Baseline:1" extends="_Baseline:2"
        version="2.2" status="deleted"/>

    <profile name="Baseline:3" base="Baseline:2" extends="_Baseline:3"
        version="2.4" status="deleted"/>

    <profile name="Baseline:4" extends="_Baseline:4" version="2.15">
      <object ref="Device.ManagementServer." requirement="present">
        <parameter ref="URL" requirement="readWrite"/>
        <parameter ref="Username" requirement="readWrite"/>
        <parameter ref="Password" requirement="readWrite"/>
        <parameter ref="PeriodicInformEnable" requirement="readWrite"/>
        <parameter ref="PeriodicInformInterval" requirement="readWrite"/>
        <parameter ref="PeriodicInformTime" requirement="readWrite"/>
        <parameter ref="ParameterKey" requirement="readOnly"/>
        <parameter ref="ConnectionRequestURL" requirement="readOnly"/>
        <parameter ref="ConnectionRequestUsername" requirement="readWrite"/>
        <parameter ref="ConnectionRequestPassword" requirement="readWrite"/>
        <parameter ref="UpgradesManaged" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="DeviceAssociation:1" version="2.0"
        dmr:previousProfile="GatewayInfo: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" version="2.0"
        dmr:previousProfile="DeviceAssociation: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="IPPing:1" version="2.0">
      <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" version="2.0">
      <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" version="2.0">
      <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" version="2.0">
      <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" version="2.0">
      <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" version="2.0">
      <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="SELTDiagnostics:1" version="2.13">
      <object ref="Device.DSL.Diagnostics.SELTUER." requirement="present">
        <parameter ref="DiagnosticsState" requirement="readWrite"/>
        <parameter ref="UERMaxMeasurementDuration" requirement="readWrite"/>
        <parameter ref="UER" requirement="readOnly"/>
        <parameter ref="UERScaleFactor" requirement="readOnly"/>
        <parameter ref="UERGroupSize" requirement="readOnly"/>
        <parameter ref="UERVar" requirement="readOnly"/>
      </object>
      <object ref="Device.DSL.Diagnostics.SELTQLN." requirement="present">
        <parameter ref="DiagnosticsState" requirement="readWrite"/>
        <parameter ref="QLNMaxMeasurementDuration" requirement="readWrite"/>
        <parameter ref="QLN" requirement="readOnly"/>
        <parameter ref="QLNGroupSize" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="UDPEchoDiag:1" version="2.9">
      <object ref="Device.IP.Diagnostics.UDPEchoDiagnostics."
          requirement="present">
        <parameter ref="DiagnosticsState" requirement="readWrite"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="Host" requirement="readWrite"/>
        <parameter ref="NumberOfRepetitions" requirement="readWrite"/>
        <parameter ref="EnableIndividualPacketResults" requirement="readWrite"/>
        <parameter ref="Timeout" requirement="readWrite"/>
        <parameter ref="DataBlockSize" requirement="readWrite"/>
        <parameter ref="DSCP" requirement="readWrite"/>
        <parameter ref="InterTransmissionTime" 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"/>
        <parameter ref="IndividualPacketResultNumberOfEntries"
            requirement="readOnly"/>
      </object>
      <object
          ref="Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.{i}."
          requirement="present">
        <parameter ref="PacketSuccess" requirement="readOnly"/>
        <parameter ref="PacketSendTime" requirement="readOnly"/>
        <parameter ref="PacketReceiveTime" requirement="readOnly"/>
        <parameter ref="TestGenSN" requirement="readOnly"/>
        <parameter ref="TestRespSN" requirement="readOnly"/>
        <parameter ref="TestRespRcvTimeStamp" requirement="readOnly"/>
        <parameter ref="TestRespReplyTimeStamp" requirement="readOnly"/>
        <parameter ref="TestRespReplyFailureCount" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="ServerSelectionDiag:1" version="2.9">
      <object ref="Device.IP.Diagnostics.ServerSelectionDiagnostics."
          requirement="present">
        <parameter ref="DiagnosticsState" requirement="readWrite"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="HostList" requirement="readWrite"/>
        <parameter ref="NumberOfRepetitions" requirement="readWrite"/>
        <parameter ref="Timeout" requirement="readWrite"/>
        <parameter ref="FastestHost" requirement="readOnly"/>
        <parameter ref="AverageResponseTime" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="GatewayInfo:1" version="2.0">
      <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="SupportedDataModel:2" base="SupportedDataModel:1"
        version="2.6">
      <object ref="Device.DeviceInfo.SupportedDataModel.{i}."
          requirement="present">
        <parameter ref="UUID" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="SM_ExecEnvs:1" version="2.1">
      <object ref="Device.SoftwareModules." requirement="present">
        <parameter ref="ExecEnvNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.SoftwareModules.ExecEnv.{i}." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="Type" requirement="readOnly"/>
        <parameter ref="Vendor" requirement="readOnly"/>
        <parameter ref="Version" requirement="readOnly"/>
        <parameter ref="AllocatedDiskSpace" requirement="readOnly"/>
        <parameter ref="AvailableDiskSpace" requirement="readOnly"/>
        <parameter ref="AllocatedMemory" requirement="readOnly"/>
        <parameter ref="AvailableMemory" requirement="readOnly"/>
        <parameter ref="ActiveExecutionUnits" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="SM_DeployAndExecUnits:1" version="2.1">
      <object ref="Device.SoftwareModules." requirement="present">
        <parameter ref="DeploymentUnitNumberOfEntries" requirement="readOnly"/>
        <parameter ref="ExecutionUnitNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.SoftwareModules.DeploymentUnit.{i}."
          requirement="present">
        <parameter ref="UUID" requirement="readOnly"/>
        <parameter ref="DUID" requirement="readOnly"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Resolved" requirement="readOnly"/>
        <parameter ref="URL" requirement="readOnly"/>
        <parameter ref="Description" requirement="readOnly"/>
        <parameter ref="Vendor" requirement="readOnly"/>
        <parameter ref="Version" requirement="readOnly"/>
        <parameter ref="VendorLogList" requirement="readOnly"/>
        <parameter ref="VendorConfigList" requirement="readOnly"/>
        <parameter ref="ExecutionUnitList" requirement="readOnly"/>
        <parameter ref="ExecutionEnvRef" requirement="readOnly"/>
      </object>
      <object ref="Device.SoftwareModules.ExecutionUnit.{i}."
          requirement="present">
        <parameter ref="EUID" requirement="readOnly"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="ExecEnvLabel" requirement="readOnly"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="RequestedState" requirement="readWrite"/>
        <parameter ref="ExecutionFaultCode" requirement="readOnly"/>
        <parameter ref="ExecutionFaultMessage" requirement="readOnly"/>
        <parameter ref="Vendor" requirement="readOnly"/>
        <parameter ref="Version" requirement="readOnly"/>
        <parameter ref="Description" requirement="readOnly"/>
        <parameter ref="References" requirement="readOnly"/>
        <parameter ref="AssociatedProcessList" requirement="readOnly"/>
        <parameter ref="VendorLogList" requirement="readOnly"/>
        <parameter ref="VendorConfigList" requirement="readOnly"/>
        <parameter ref="SupportedDataModelList" requirement="readOnly"/>
        <parameter ref="ExecutionEnvRef" requirement="readOnly"/>
      </object>
      <object ref="Device.SoftwareModules.ExecutionUnit.{i}.Extensions."
          requirement="present"/>
    </profile>

    <profile name="SM_Baseline:1" version="2.1">
      <object ref="Device.SoftwareModules." requirement="present">
        <parameter ref="ExecEnvNumberOfEntries" requirement="readOnly"/>
        <parameter ref="DeploymentUnitNumberOfEntries" requirement="readOnly"/>
        <parameter ref="ExecutionUnitNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.SoftwareModules.ExecEnv.{i}." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="Type" requirement="readOnly"/>
        <parameter ref="Vendor" requirement="readOnly"/>
        <parameter ref="Version" requirement="readOnly"/>
        <parameter ref="ActiveExecutionUnits" requirement="readOnly"/>
      </object>
      <object ref="Device.SoftwareModules.DeploymentUnit.{i}."
          requirement="present">
        <parameter ref="UUID" requirement="readOnly"/>
        <parameter ref="DUID" requirement="readOnly"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Resolved" requirement="readOnly"/>
        <parameter ref="URL" requirement="readOnly"/>
        <parameter ref="Vendor" requirement="readOnly"/>
        <parameter ref="Version" requirement="readOnly"/>
        <parameter ref="ExecutionUnitList" requirement="readOnly"/>
        <parameter ref="ExecutionEnvRef" requirement="readOnly"/>
      </object>
      <object ref="Device.SoftwareModules.ExecutionUnit.{i}."
          requirement="present">
        <parameter ref="EUID" requirement="readOnly"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="ExecEnvLabel" requirement="readOnly"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="RequestedState" requirement="readWrite"/>
        <parameter ref="ExecutionFaultCode" requirement="readOnly"/>
        <parameter ref="ExecutionFaultMessage" requirement="readOnly"/>
        <parameter ref="Vendor" requirement="readOnly"/>
        <parameter ref="Version" requirement="readOnly"/>
        <parameter ref="References" requirement="readOnly"/>
        <parameter ref="SupportedDataModelList" requirement="readOnly"/>
      </object>
      <object ref="Device.SoftwareModules.ExecutionUnit.{i}.Extensions."
          requirement="present"/>
    </profile>

    <profile name="PeriodicStatsAdv:2" base="PeriodicStatsAdv:1"
        version="2.16">
      <object ref="Device.PeriodicStatistics.SampleSet.{i}."
          requirement="createDelete">
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="TimeReference" requirement="readWrite"/>
        <parameter ref="FetchSamples" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="HeartbeatPolicy:1" version="2.12">
      <description>
        Note that support for this profile implies support for the requirements
        of {{bibref|TR-069|Annex O}}.
      </description>
      <object ref="Device.ManagementServer.HeartbeatPolicy."
          requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="ReportingInterval" requirement="readWrite"/>
        <parameter ref="InitiationTime" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="BulkDataFileTransfer:1" extends="BulkDataColl:1"
        version="2.5">
      <object ref="Device.BulkData.Profile.{i}." requirement="createDelete">
        <parameter ref="FileTransferURL" requirement="readWrite"/>
        <parameter ref="FileTransferUsername" requirement="readWrite"/>
        <parameter ref="FileTransferPassword" requirement="readWrite"/>
        <parameter ref="ControlFileFormat" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="BulkDataStreaming:1" extends="BulkDataColl:1" version="2.5">
      <object ref="Device.BulkData.Profile.{i}." requirement="createDelete">
        <parameter ref="StreamingHost" requirement="readWrite"/>
        <parameter ref="StreamingPort" requirement="readWrite"/>
        <parameter ref="StreamingSessionID" requirement="readWrite"/>
      </object>
    </profile>
  </model>
</dm:document>
