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

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

  Editor:
    * William Lupton, Cisco

  BroadbandHome Working Group Chairs:
    * Jason Walls, QA Cafe
    * John Blackford, Pace

  Issue History (Filename: Approval Date: Publication Date: Changes):
    * tr-181-2-0-0.xml: May 2010:
      - corresponds to TR-181 Issue 2.
    * tr-181-2-1-0.xml: November 2010:
      - corresponds to TR-181 Issue 2 Amendment 1.
    * tr-181-2-2-0.xml: March 2011:
      - corresponds to TR-181 Issue 2 Amendment 2.
    * tr-181-2-3-0.xml: September 2011:
      - corresponds to TR-181 Issue 2 Amendment 3.
    * tr-181-2-4-0.xml: November 2011:
      - corresponds to TR-181 Issue 2 Amendment 4.
    * tr-181-2-5-0.xml: May 2012:
      - corresponds to TR-181 Issue 2 Amendment 5.
    * tr-181-2-6-0.xml: November 2012:
      - corresponds to TR-181 Issue 2 Amendment 6.
    * tr-181-2-7-0.xml: November 2013: January 17, 2014
      - corresponds to TR-181 Issue 2 Amendment 7.
    * tr-181-2-8-0.xml: 8 September 2014: 17 September 2014:
      - corresponds to TR-181 Issue 2 Amendment 8. 

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

  <description>
    {{docname|Device Data Model for TR-069}}
    {{appdate|8 September 2014}}
    {{trname|TR-181i2a8}}
    * Added LLDP and HTIP home network topology discovery parameters, G.997.1-2012 DSL parameters, various WiFi parameters (associated device statistics, retry limits, reports, QoS), and other minor changes
    * Updated G.hn data model to align with G.9962
    * Updated Annex B on tunneling, and added GRE and MAP data models
    * Added PCP data model
  </description>

  <import file="tr-069-1-1-biblio.xml" spec="urn:broadband-forum-org:tr-069-1-1"/>

  <import file="tr-106-1-0-types.xml" spec="urn:broadband-forum-org:tr-106-1-0">
    <dataType name="Alias"/>
    <dataType name="IPAddress"/>
    <dataType name="IPv4Prefix"/>
    <dataType name="IPv6Prefix"/>
    <dataType name="MACAddress"/>
    <dataType name="StatsCounter32"/>
    <dataType name="StatsCounter64"/>
  </import>

  <import file="tr-181-2-7.xml" spec="urn:broadband-forum-org:tr-181-2-7">
    <model name="Device:2.7"/>
  </import>

  <import file="tr-157-1-9.xml" spec="urn:broadband-forum-org:tr-157-1-9">
    <component name="DI_HTIP"/>    
    <component name="MS_InformParameters"/>
    <component name="UPnPDiffs"/>  
  </import>
  
  <model name="Device:2.8" base="Device:2.7">

    <!-- TR-157a9 components -->
    <component path="Device." ref="DI_HTIP"/>
    <component path="Device." ref="MS_InformParameters"/>
    <component path="Device." ref="UPnPDiffs"/>

    <object base="Device.DSL.Line.{i}." access="readOnly" numEntriesParameter="LineNumberOfEntries" minEntries="0"  maxEntries="unbounded" dmr:fixedObject="true">
      <parameter name="EnableDataGathering" access="readWrite" dmr:previousParameter="Enable">
        <description>
          Enables or disables data gathering on the DSL line.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
      <parameter base="StandardsSupported" access="readOnly" status="deprecated">
        <description action="append">
          This parameter is DEPRECATED 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.
        </description>
      </parameter>
      <parameter name="XTSE" access="readOnly">
        <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 base="StandardUsed" access="readOnly" status="deprecated">
        <description action="append">
          This parameter is DEPRECATED 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.
        </description>
      </parameter>
      <parameter name="XTSUsed" access="readOnly">
        <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 base="SuccessFailureCause" access="readOnly">
        <description action="replace">
          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">
        <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">
        <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">
        <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">
        <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">
        <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">
       <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">
        <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">
        <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">
        <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">
        <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>
    </object>

    <object name="Device.DSL.Line.{i}.DataGathering." access="readOnly" minEntries="1" maxEntries="1">
      <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>
            <pathRef refType="strong" targetParent=".DeviceInfo.VendorLogFile." targetType="row"></pathRef>
            <size maxLength="256"></size>
          </string>
        </syntax>
      </parameter>
    </object>
    
    <object base="Device.DSL.Channel.{i}." access="readOnly" numEntriesParameter="ChannelNumberOfEntries" minEntries="0"  maxEntries="unbounded" dmr:fixedObject="true">
      <parameter name="ACTNDR" access="readOnly">
        <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">
        <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>
            <units value="0.1 DMT symbols"/>
            <range minInclusive="0" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Cellular." access="readOnly" minEntries="1" maxEntries="1" dmr:previousObject="Device.Optical.">
      <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" access="readOnly">
        <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}." access="readOnly" minEntries="0"  maxEntries="unbounded"
                numEntriesParameter="InterfaceNumberOfEntries" dmr:fixedObject="true">
      <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 a single {{object|USIM}}.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Name"/>
      </uniqueKey>
      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the interface.
          This parameter is based on ''ifAdminStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
      <parameter name="Status" access="readOnly" activeNotify="canDeny">
        <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.
          * 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)
          * SHOULD remain in the {{enum|Error}} state if there is an error or other fault condition detected on the interface
          * 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.
          Because the interface includes layer 1 the {{enum|LowerLayerDown}} value SHOULD never be used.
          This parameter is based on ''ifOperStatus'' from {{bibref|RFC2863}}.
        </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">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="Alias"/>
        </syntax>
      </parameter>
      <parameter name="Name" access="readOnly">
        <description>
          The textual name of the interface as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>
      <parameter name="LastChange" access="readOnly" activeNotify="canDeny">
        <description>
          The accumulated time in {{units}} since the interface entered its current operational state.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>
      <parameter name="LowerLayers" access="readWrite">
        <description>
          {{list}} {{reference|an interface object that is stacked immediately below this interface object}}  See {{bibref|TR-181i2|Section 4.2.1}}.
          Note: Since {{object}} is a layer 1 interface, it is expected that {{param}} will not be used.
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string>
            <pathRef refType="strong" targetType="row"/>
          </string>
        </syntax>
      </parameter>
      <parameter name="Upstream" access="readOnly">
        <description>
          Indicates whether the interface points towards the Internet ({{true}}) or towards End Devices ({{false}}).
          For example:
          * For an Internet Gateway Device, {{param}} will be {{true}} for all WAN interfaces and {{false}} for all LAN interfaces.
          * For a standalone WiFi Access Point that is connected via Ethernet to an Internet Gateway Device, {{param}} will be {{true}} for the Ethernet interface and {{false}} for the WiFi Radio interface.
          * For an End Device, {{param}} will be {{true}} for all interfaces.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
      <!-- specific parameters -->
      <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"/>
          </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>
            <enumerationRef targetParam="AvailableNetworks" nullValue=""/>
            <size maxLength="64"/>
          </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}} 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="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>
    </object>

    <object name="Device.Cellular.Interface.{i}.USIM." access="readOnly" minEntries="1"  maxEntries="1">
      <description>
        USIM (Universal Subscriber Identity Module or SIM card) parameters for the interface.
      </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 ACS to change the USIM PIN used for SIM card activation.
        </description>
        <syntax hidden="true">
          <string>
            <size maxLength="4"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Cellular.Interface.{i}.Stats." access="readOnly" minEntries="1" maxEntries="1">
      <description>
        Throughput statistics for this interface.
        The CPE MUST reset the interface's Stats parameters (unless otherwise stated in individual object or parameter descriptions) either when the interface becomes operationally down due to a previous administrative down (i.e. the interface's {{param|#.Status}} parameter transitions to a down state after the interface is disabled) or when the interface becomes administratively up (i.e. the interface's {{param|#.Enable}} parameter transitions from {{false}} to {{true}}). Administrative and operational interface status is discussed in {{bibref|TR-181i2|section 4.2.2}}.
      </description>
      <parameter name="BytesSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of bytes transmitted out of the interface, including framing characters.
        </description>
        <syntax>
          <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 packets transmitted out of the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>
      <parameter name="PacketsReceived" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of packets received on the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>
      <parameter name="ErrorsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of outbound packets that could not be transmitted because of errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>
      <parameter name="ErrorsReceived" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of inbound packets that contained errors preventing them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>
      <parameter name="UnicastPacketsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of packets requested for transmission which were not addressed to a multicast or broadcast address at this layer, including those that were discarded or not sent.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>
      <parameter name="UnicastPacketsReceived" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a higher layer, which were not addressed to a multicast or broadcast address at this layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>
      <parameter name="DiscardPacketsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of outbound packets which were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>
      <parameter name="DiscardPacketsReceived" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of inbound packets which were chosen to be discarded even though no errors had been detected to  prevent their being delivered. One possible reason for discarding such a packet could be to free up buffer space.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>
      <parameter name="MulticastPacketsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of packets that higher-level protocols requested for transmission and which were addressed to a multicast address at this layer, including those that were discarded or not sent.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>
      <parameter name="MulticastPacketsReceived" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a higher layer, which were addressed to a multicast address at this layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>
      <parameter name="BroadcastPacketsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of packets that higher-level protocols requested for transmission and which were addressed to a broadcast address at this layer, including those that were discarded or not sent.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>
      <parameter name="BroadcastPacketsReceived" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a higher layer, which were addressed to a broadcast address at this layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>
      <parameter name="UnknownProtoPacketsReceived" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of packets received via the interface which were discarded because of an unknown or unsupported  protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Cellular.AccessPoint.{i}." access="readWrite" minEntries="0"  maxEntries="unbounded"
                numEntriesParameter="AccessPointNumberOfEntries" enableParameter="Enable">
      <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.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="APN"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <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">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="Alias"/>
        </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 hidden="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=".Cellular.Interface." targetType="row"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object base="Device.Ethernet.Interface.{i}." access="readOnly" minEntries="0" maxEntries="unbounded">
      <parameter name="EEECapability" access="readOnly">
        <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">
        <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>
    </object>

    <object base="Device.Ghn.Interface.{i}." access="readOnly" numEntriesParameter="InterfaceNumberOfEntries" minEntries="0"  maxEntries="unbounded">
      <parameter base="ConnectionType" access="readOnly" status="deprecated">
        <description action="replace">
          This parameter is DEPRECATED because it has been replaced by {{param|MediumType}}.
        </description>
       </parameter>
      <parameter name="MaxTransmitRate" access="readOnly">
        <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="DMRequested" access="readWrite" dmr:previousParameter="NodeTypeDMCapable">
        <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">
        <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="SCRequested" access="readWrite" dmr:previousParameter="NodeTypeSCCapable">
        <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">
        <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">
        <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">
        <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">
        <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">
        <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">
        <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">
        <description>
          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>
          <string/>
        </syntax>
      </parameter>
      <parameter name="PerformanceMonitoringDiagnosticsEnable" access="readWrite">
        <description>
          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>
          <string/>
        </syntax>
      </parameter>
      <parameter name="SMMaskedBandNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>
        
    <object name="Device.Ghn.Interface.{i}.DMInfo." access="readOnly" minEntries="1" maxEntries="1">
      <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>
            <units value="2 seconds"/>
            <range minInclusive="5" maxInclusive="63"/>
          </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>
            <units value="0.1 sec"/>
            <range minInclusive="0" maxInclusive="255"/>
          </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">
      <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>
            <enumeration value="8-byte MIC"></enumeration>
            <enumeration value="16-byte MIC"></enumeration>
          </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" minEntries="0" maxEntries="32" enableParameter="Enable" numEntriesParameter="SMMaskedBandNumberOfEntries" >
      <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 base="Device.Ghn.Interface.{i}.Stats." access="readOnly" minEntries="1" maxEntries="1">
      <description action="replace">
        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 base="BytesSent" access="readOnly" activeNotify="canDeny">
        <description action="append">
          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"/>
        </syntax>
      </parameter>
      <parameter base="BytesReceived" access="readOnly" activeNotify="canDeny">
        <description action="append">
          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"/>
        </syntax>
      </parameter>
      <parameter base="PacketsSent" access="readOnly" activeNotify="canDeny">
        <description action="append">
          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"/>
        </syntax>
      </parameter>
      <parameter base="PacketsReceived" access="readOnly" activeNotify="canDeny">
        <description action="append">
          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"/>
        </syntax>
      </parameter>
      <parameter base="ErrorsSent" access="readOnly" activeNotify="canDeny">
        <description action="append">
          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"/>
        </syntax>
      </parameter>
      <parameter base="ErrorsReceived" access="readOnly" activeNotify="canDeny">
        <description action="append">
          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"/>
        </syntax>
      </parameter>
      <parameter base="UnicastPacketsSent" access="readOnly" activeNotify="canDeny">
        <description action="append">
          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"/>
        </syntax>
      </parameter>
      <parameter base="UnicastPacketsReceived" access="readOnly" activeNotify="canDeny">
        <description action="append">
          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"/>
        </syntax>
      </parameter>
      <parameter base="DiscardPacketsSent" access="readOnly" activeNotify="canDeny">
        <description action="append">
          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"/>
        </syntax>
      </parameter>
      <parameter base="DiscardPacketsReceived" access="readOnly" activeNotify="canDeny">
        <description action="append">
          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"/>
        </syntax>
      </parameter>
      <parameter base="MulticastPacketsSent" access="readOnly" activeNotify="canDeny">
        <description action="append">
          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"/>
        </syntax>
      </parameter>
      <parameter base="MulticastPacketsReceived" access="readOnly" activeNotify="canDeny">
        <description action="append">
          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"/>
        </syntax>
      </parameter>
      <parameter base="BroadcastPacketsSent" access="readOnly" activeNotify="canDeny">
        <description action="append">
          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"/>
        </syntax>
      </parameter>
      <parameter base="BroadcastPacketsReceived" access="readOnly" activeNotify="canDeny">
        <description action="append">
          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"/>
        </syntax>
      </parameter>
      <parameter base="UnknownProtoPacketsReceived" access="readOnly" activeNotify="canDeny">
        <description action="append">
          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"/>
        </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 base="Device.Ghn.Interface.{i}.AssociatedDevice.{i}." access="readOnly" numEntriesParameter="AssociatedDeviceNumberOfEntries" minEntries="0" maxEntries="unbounded">
      <parameter base="MACAddress" access="readOnly">
        <description action="append">
          This is denoted as REGID in {{bibref|G.9961}}.
        </description>
      </parameter>
      <parameter base="DeviceId" access="readOnly">
        <description action="replace">
          Device Id (as defined in G.hn) for the remote G.hn device, denoted as DEVICE_ID in {{bibref|G.9961}}.
        </description>
      </parameter>
      <parameter base="TxPhyRate" access="readOnly" activeNotify="canDeny">
        <description action="append">
          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>
      </parameter>
      <parameter base="RxPhyRate" access="readOnly" activeNotify="canDeny">
        <description action="append">
          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>
      </parameter>
      <parameter base="Active" access="readOnly">
        <description action="append">
          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>
      </parameter>
    </object>
    
    <object name="Device.Ghn.Diagnostics." access="readOnly" minEntries="1" maxEntries="1">
        <description>
          The G.hn Diagnostics object.
        </description>
    </object>

    <object name="Device.Ghn.Diagnostics.PHYThroughput." access="readOnly" minEntries="1" maxEntries="1">
      <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>
          Indicates availability of diagnostic data for PHYThroughput measurements {{enum}}
          If the ACS sets the value of this parameter to {{enum|Requested}}, the CPE MUST initiate the corresponding diagnostic test. When writing, the only allowed value is {{enum|Requested}}. To ensure the use of the proper test parameters (the writable parameters in this object), the test parameters MUST be set either prior to or at the same time as (in the same SetParameterValues) setting the {{param}} to {{enum|Requested}}.
          When 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.
          After the diagnostic is complete, the value of all result parameters (all read-only parameters in the Diagnostics 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}}.
        </description>
        <syntax>
          <string>
            <enumeration value="None" access="readOnly"/>
            <enumeration value="Requested"/>
            <enumeration value="Complete" access="readOnly"/>
            <enumeration value="Error" access="readOnly"/>
          </string>
        </syntax>
      </parameter>
      <parameter name="Interface" access="readWrite">
        <description>
          The interface over which the test is to be performed.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetType="row" targetParent=".Ghn.Interface."/>
          </string>
        </syntax>
      </parameter>
      <parameter name="DiagnoseMACAddress" access="readWrite">
        <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="PHYThroughputResultNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>
    
    <object name="Device.Ghn.Diagnostics.PHYThroughput.Result.{i}." access="readOnly" numEntriesParameter="PHYThroughputResultNumberOfEntries" minEntries="0" maxEntries="unbounded">
      <description>
        PHY throughput diagnostics results.
      </description>
      <uniqueKey>
        <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="LinkState" access="readOnly">
        <description>
          Indicates the state of the link between the G.hn Interface with MAC address {{param|#.DiagnoseMACAddress}} and the G.hn Interface with MAC address {{param|DestinationMACAddress}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Direct">
              <description>
                There is a direct link between G.hn Interface with MAC address {{param|#.DiagnoseMACAddress}} and G.hn Interface with MAC address {{param|DestinationMACAddress}}
              </description>
            </enumeration>
            <enumeration value="NonDirect">
                <description>
                  There is no direct link between G.hn Interface with MAC address {{param|#.DiagnoseMACAddress}} and G.hn Interface with MAC address {{param|DestinationMACAddress}}
                </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>   
      <parameter name="TxPhyRate" access="readOnly" activeNotify="canDeny">
        <description>
          PHY data rate in transmit direction in the link between the G.hn Interface with MAC address {{param|#.DiagnoseMACAddress}} and the G.hn Interface with MAC address {{param|DestinationMACAddress}}. It is represented in {{units}} as defined in Note 1 to {{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>
          PHY data rate in receive direction in the link between the G.hn Interface with MAC address {{param|#.DiagnoseMACAddress}}  and the G.hn Interface with MAC address {{param|DestinationMACAddress}}. It is represented in {{units}} as defined in Note 1 to {{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>
    </object>
    
    <object name="Device.Ghn.Diagnostics.PerformanceMonitoring." access="readOnly" minEntries="1" maxEntries="1">
      <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>
          Indicates availability of diagnostic data for Performance Monitoring. {{enum}}
          If the ACS sets the value of this parameter to {{enum|Requested}}, the CPE MUST initiate the corresponding diagnostic test. When writing, the only allowed value is {{enum|Requested}}. To ensure the use of the proper test parameters (the writable parameters in this object), the test parameters MUST be set either prior to or at the same time as (in the same SetParameterValues) setting the {{param}} to {{enum|Requested}}.
          When 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.
          After the diagnostic is complete, the value of all result parameters (all read-only parameters in the Diagnostics object) MUST be retained by the node until either this diagnostic is run again, or the CPE reboots. After a reboot, if the CPE has not retained the result parameters from the most recent test, it MUST set the value of this parameter to {{enum|None}}.
        </description>
        <syntax>
          <string>
            <enumeration value="None" access="readOnly"/>
            <enumeration value="Requested"/>
            <enumeration value="Complete" access="readOnly"/>
            <enumeration value="Error" access="readOnly"/>
          </string>
        </syntax>
      </parameter>
      <parameter name="Interface" access="readWrite">
        <description>
          The interface over which the test is to be performed.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetType="row" targetParent=".Ghn.Interface."/>
          </string>
        </syntax>
      </parameter>
      <parameter name="DiagnoseMACAddress" access="readWrite">
        <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">
        <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">
        <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">
      <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">
      <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>
        <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">
        <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">
      <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>
        <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 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 base="Device.WiFi.Radio.{i}." access="readOnly" minEntries="0" maxEntries="unbounded">
      <parameter name="RetryLimit" access="readWrite">
        <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">
        <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">
        <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">
        <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">
        <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">
        <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">
        <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">
        <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">
        <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">
        <description>
          This specifies the number of beacon intervals 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-2012}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
      <parameter name="PacketAggregationEnable" access="readWrite">
        <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">
        <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">
        <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="OperationalDataTransmitRates" access="readWrite">
        <description>
          {{list}} Maximum access point 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.
        </description>
        <syntax>
          <list/>
          <string/>
        </syntax>
      </parameter>
      <parameter name="SupportedDataTransmitRates" access="readOnly">
        <description>
          {{list}} Data transmit rates in ''Mbps'' for unicast frames at which the access point will permit a station to connect (a subset of {{param|OperationalDataTransmitRates}}). Given the values of {{param|BasicDataTransmitRates}} and {{param|OperationalDataTransmitRates}} from the examples above, {{param}} might be "1,2,5.5", indicating that the AP will only permit connections at 1 Mbps, 2 Mbps and 5.5 Mbps, even though it could theoretically accept connections at 11 Mbps.
        </description>
        <syntax>
          <list/>
          <string/>
        </syntax>
      </parameter>
    </object>
    
    <object base="Device.WiFi.Radio.{i}.Stats." access="readOnly" minEntries="1" maxEntries="1">
      <parameter name="Noise" access="readOnly">
        <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.
        </description>
        <syntax>
          <int>
            <units value="dBm"/>
          </int>
        </syntax>
      </parameter>
    </object>

    <object base="Device.WiFi.AccessPoint.{i}." access="readWrite" minEntries="0" maxEntries="unbounded">
      <parameter base="RetryLimit" access="readWrite" status="deprecated">
        <description action="append">
          This parameter is DEPRECATED because it is really a {{object|#.Radio}} attribute.  Use {{param|#.Radio.{i}.RetryLimit}}.
        </description>
      </parameter>
    </object>

    <object name="Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats." access="readOnly" minEntries="1" maxEntries="1">
      <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.
        </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.
        </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="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.
        </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">
      <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>
      <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">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="Alias"/>
        </syntax>
      </parameter>
      <parameter name="AIFSN" access="readWrite">
        <description>
          Arbitration Inter Frame Spacing (Number). This is the number of time slots in the arbitration interframe space.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="2" maxInclusive="15"/>
          </unsignedInt>
        </syntax>
      </parameter>
      <parameter name="ECWMin" access="readWrite">
        <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}}).
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="15"/>
            <units value="microseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>
      <parameter name="ECWMax" access="readWrite">
        <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}}).
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="15"/>
            <units value="microseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>
      <parameter name="TxOpMax" access="readWrite">
        <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).
        </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">
      <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 Diasbled 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 [Section 4.2.2/TR-181i2].
      </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.EndPoint.{i}.AC.{i}." access="readOnly" minEntries="4" maxEntries="4">
      <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>
      <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">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="Alias"/>
        </syntax>
      </parameter>
      <parameter name="AIFSN" access="readWrite">
        <description>
          Arbitration Inter Frame Spacing (Number). This is the number of time slots in the arbitration interframe space.
        </description>
        <syntax>
           <unsignedInt>
             <range minInclusive="2" maxInclusive="15"/>
           </unsignedInt>
        </syntax>
      </parameter>
      <parameter name="ECWMin" access="readWrite">
        <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}}).
        </description>
        <syntax>
           <unsignedInt>
             <range minInclusive="0" maxInclusive="15"/>
             <units value="microseconds"/>
           </unsignedInt>
        </syntax>
      </parameter>
      <parameter name="ECWMax" access="readWrite">
        <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}}).
        </description>
        <syntax>
           <unsignedInt>
             <range minInclusive="0" maxInclusive="15"/>
             <units value="microseconds"/>
           </unsignedInt>
        </syntax>
      </parameter>
      <parameter name="TxOpMax" access="readWrite">
        <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).
        </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">
      <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 Diasbled 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 [Section 4.2.2/TR-181i2].
      </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 base="Device.IP.Interface.{i}." access="readWrite" minEntries="0" maxEntries="unbounded">
      <description action="append">
        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>
      <parameter base="Type" access="readOnly">
        <syntax>
          <string>
            <enumeration value="Normal"/>
            <enumeration value="Loopback"/>
            <enumeration value="Tunnel">
              <description action="replace">
                Only used with legacy ({{enum|Tunnel}},{{enum|Tunneled}}) IP interface pairs
              </description>
            </enumeration>
            <enumeration value="Tunneled">
              <description action="replace">
                Only used with legacy ({{enum|Tunnel}},{{enum|Tunneled}}) IP interface pairs
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>
    </object>

    <object base="Device.IP.Interface.{i}.IPv6Address.{i}." access="readWrite" minEntries="0" maxEntries="unbounded">
      <parameter base="Origin" access="readOnly">
        <syntax>
          <string>
            <enumeration value="AutoConfigured"/>
            <enumeration value="DHCPv6"/>
            <enumeration value="IKEv2"/>
            <enumeration value="MAP">
              <description>
                Assigned by MAP {{bibref|MAP}}, i.e. is this interface's ''MAP IPv6 address''
              </description>
            </enumeration>
            <enumeration value="WellKnown"/>
            <enumeration value="Static"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object base="Device.IP.Diagnostics." access="readOnly" minEntries="1" maxEntries="1">
      <parameter name="IPv4PingSupported" access="readOnly">
        <description>
          Indicates that Ping over IPv4 is supported.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
      <parameter name="IPv6PingSupported" access="readOnly">
        <description>
          Indicates that Ping over IPv6 is supported.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
      <parameter name="IPv4TraceRouteSupported" access="readOnly">
        <description>
          Indicates that TraceRoute over IPv4 is supported.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
      <parameter name="IPv6TraceRouteSupported" access="readOnly">
        <description>
          Indicates that TraceRoute over IPv6 is supported.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>
    
    <object base="Device.IP.Diagnostics.IPPing." access="readOnly" minEntries="1" maxEntries="1">
      <parameter base="DiagnosticsState" access="readWrite">
        <syntax>
          <string>
            <enumeration value="None" access="readOnly"/>
            <enumeration value="Requested"/>
            <enumeration value="Complete" access="readOnly"/>
            <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"/>
          </string>
        </syntax>
      </parameter>
      <parameter base="Interface" access="readWrite">
        <description action="replace">
          {{reference}} The IP-layer interface over which the test is to be performed. Example: Device.IP.Interface.1
          If {{empty}} is specified, the CPE MUST use the interface as directed by its routing policy (''Forwarding'' table entries) to determine the appropriate interface.
        </description>
      </parameter>
      <parameter name="ProtocolVersion" access="readWrite" dmr:previousParameter="Interface">
        <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="IPAddressUsed" access="readOnly" dmr:previousParameter="DSCP">
        <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>
    </object>
    
    <object base="Device.IP.Diagnostics.TraceRoute." access="readOnly" minEntries="1" maxEntries="1">
      <parameter base="DiagnosticsState" access="readWrite">
        <syntax>
          <string>
            <enumeration value="None" access="readOnly"/>
            <enumeration value="Requested"/>
            <enumeration value="Complete" access="readOnly"/>
            <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"/>
          </string>
        </syntax>
      </parameter>
      <parameter base="Interface" access="readWrite">
        <description action="replace">
          {{reference}} The IP-layer interface over which the test is to be performed. Example: Device.IP.Interface.1
          If {{empty}} is specified, the CPE MUST use the interface as directed by its routing policy (''Forwarding'' table entries) to determine the appropriate interface.
        </description>
      </parameter>
      <parameter name="ProtocolVersion" access="readWrite" dmr:previousParameter="Interface">
        <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="IPAddressUsed" access="readOnly" dmr:previousParameter="MaxHopCount">
        <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>
    </object>

    <object name="Device.LLDP." access="readOnly" minEntries="1" maxEntries="1" dmr:previousObject="Device.IP.">
      <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">
      <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"
      minEntries="0" maxEntries="unbounded" numEntriesParameter="DeviceNumberOfEntries">
      <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"
      minEntries="0" maxEntries="unbounded" numEntriesParameter="PortNumberOfEntries">
      <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"/>
          <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">
      <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"/>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>
    </object>
    
    <object name="Device.LLDP.Discovery.Device.{i}.DeviceInformation."
      access="readOnly" minEntries="1" maxEntries="1">
      <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" minEntries="0" maxEntries="unbounded" numEntriesParameter="VendorSpecificNumberOfEntries">
      <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 base="Device.IPsec.Stats." access="readOnly" minEntries="1" maxEntries="1">
      <parameter base="PacketsSent" access="readOnly">
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>
      <parameter base="PacketsReceived" access="readOnly">
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>
    </object>

    <object base="Device.IPsec.IKEv2SA.{i}.Stats." access="readOnly" minEntries="1" maxEntries="1">
      <parameter base="PacketsSent" access="readOnly">
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>
      <parameter base="PacketsReceived" access="readOnly">
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>
    </object>

    <object base="Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Stats." access="readOnly" minEntries="1" maxEntries="1">
      <parameter base="PacketsSent" access="readOnly">
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>
      <parameter base="PacketsReceived" access="readOnly">
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.GRE." access="readOnly" minEntries="1" maxEntries="1" dmr:previousObject="Device.IPsec.">
      <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" minEntries="0" maxEntries="unbounded" numEntriesParameter="TunnelNumberOfEntries">
      <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" activeNotify="canDeny">
        <description>{{datatype|expand}}</description>
        <syntax>
          <dataType ref="Alias"/>
        </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"/>
          <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" access="readOnly">
        <description>{{numentries}}</description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.GRE.Tunnel.{i}.Stats." access="readOnly" minEntries="1" maxEntries="1">
      <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.Tunnel.{i}.Interface.{i}." access="readWrite" minEntries="0" maxEntries="unbounded" numEntriesParameter="InterfaceNumberOfEntries">
      <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/>
        </syntax>
      </parameter>
      <parameter name="Status" access="readOnly">
        <description>The current operational state of the interface (see {{bibref|TR-181i2|Section 4.2.2}}). {{enum}}
When {{param|Enable}} is {{false}} then {{param}} SHOULD normally be {{enum|Down}} (or {{enum|NotPresent}} or {{enum|Error}} if there is a fault condition on the interface). 
When {{param|Enable}} is changed to {{true}} then {{param}} SHOULD change to {{enum|Up}} if and only if the interface is able to transmit and receive network traffic; it SHOULD change to {{enum|Dormant}} if and only if the interface is operable but is waiting for external actions before it can transmit and receive network traffic (and subsequently change to {{enum|Up}} if still operable when the expected actions have completed); it SHOULD change to {{enum|LowerLayerDown}} if and only if the interface is prevented from entering the {{enum|Up}} state because one or more of the interfaces beneath it is down; it SHOULD remain in the {{enum|Error}} state if there is an error or other fault condition detected on the interface; it SHOULD remain in the {{enum|NotPresent}} state if the interface has missing (typically hardware) components; it SHOULD change to {{enum|Unknown}} if the state of the interface can not be determined for some reason.
This parameter is based on ''ifOperStatus'' from {{bibref|RFC2863}}.</description>
        <syntax>
          <string>
            <enumeration value="Up"/>
            <enumeration value="Down"/>
            <enumeration value="Unknown"/>
            <enumeration value="Dormant"/>
            <enumeration value="NotPresent"/>
            <enumeration value="LowerLayerDown"/>
            <enumeration value="Error" optional="true"/>
          </string>
        </syntax>
      </parameter>
      <parameter name="Alias" access="readWrite" activeNotify="canDeny">
        <description>{{datatype|expand}}</description>
        <syntax>
          <dataType ref="Alias"/>
        </syntax>
      </parameter>
      <parameter name="Name" access="readOnly">
        <description>The textual name of the interface as assigned by the CPE.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>
      <parameter name="LastChange" access="readOnly" activeNotify="canDeny">
        <description>The accumulated time in {{units}} since the interface entered its current operational state.</description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>
      <parameter name="LowerLayers" access="readWrite">
        <description>{{list}} {{reference|an interface object that is stacked immediately below this interface object}}  See {{bibref|TR-181i2|Section 4.2.1}}.</description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string>
            <pathRef refType="strong" targetType="row"/>
          </string>
        </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." access="readOnly" minEntries="1" maxEntries="1">
      <description>
        Statistics for this GRE tunnel interface, i.e. all traffic that has passed through the interface.
        The device 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 has been disabled) or when the interface becomes administratively up (i.e. the Enable parameter transitioned from {{false}} to {{true}}).
      </description>
      <parameter name="BytesSent" access="readOnly">
        <description>
          The total number of {{units}} sent by this interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>
      <parameter name="BytesReceived" access="readOnly">
        <description>
          The total number of {{units}} received by this interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="bytes"/>
          </dataType>
        </syntax>
      </parameter>
      <parameter name="PacketsSent" access="readOnly">
        <description>
          The total number of {{units}} sent by this interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>
      <parameter name="PacketsReceived" access="readOnly">
        <description>
          The total number of {{units}} received by this interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64">
            <units value="packets"/>
          </dataType>
        </syntax>
      </parameter>
      <parameter name="ErrorsSent" access="readOnly">
        <description>
          The total number of {{units}} discarded by this interface 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 this interface 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="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.Filter.{i}." access="readWrite" numEntriesParameter="FilterNumberOfEntries"  enableParameter="Enable" minEntries="0" maxEntries="unbounded">
      <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>Position of the {{object}} entry in the order of precedence.  A value of ''1'' indicates the first entry considered (highest precedence).  For each packet, the highest ordered entry that matches the filter criteria is applied.  All lower order entries are ignored.
When this value is modified, if the value matches that of an existing entry, the {{param}} value for the existing entry and all lower {{param}} entries is incremented (lowered in precedence) to ensure uniqueness of this value. A deletion causes {{param}} values to be compacted. When a value is changed, incrementing occurs before compaction.
The value of {{param}} on creation of a {{object}} table entry MUST be one greater than the largest current value (initially assigned the lowest precedence).</description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
          </unsignedInt>
        </syntax>
      </parameter>
      <parameter name="Alias" access="readWrite">
        <description>A non-volatile handle used to reference this instance. {{param}} provides a mechanism for an ACS to label this instance for future reference. An initial unique value MUST be assigned when the CPE creates an instance of this object.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>
      <parameter name="Interface" access="readWrite">
        <description>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 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.MAP." access="readOnly" minEntries="1" maxEntries="1" dmr:previousObject="Device.GRE.">
      <description>
        The Mapping of Address and Port (MAP) object {{bibref|MAP}} {{bibref|MAP-T}} {{bibref|MAP-DHCP}}. 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-181i2a8|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" minEntries="0" maxEntries="unbounded" enableParameter="Enable">
      <description>
        MAP domain settings {{bibref|MAP}}.  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" activeNotify="canDeny">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="Alias"/>
        </syntax>
      </parameter>
      <parameter name="TransportMode" access="readWrite">
        <description>
          The transport mode to use.
          Corresponds to the {{bibref|MAP-DHCP}} ''S46_CONT_MAPE'' and ''S46_CONT_MAPT'' container options.
        </description>
        <syntax>
          <string>
            <enumeration value="Encapsulation">
              <description>
                MAP-E {{bibref|MAP}}
              </description>
            </enumeration>
            <enumeration value="Translation">
              <description>
                MAP-T {{bibref|MAP-T}}
              </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 ACS configures this prefix directly, the CPE MUST use the ACS-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|MAP}}.
          * For MAP-T this is the BR prefix {{bibref|MAP-T}}.
          Corresponds to the {{bibref|MAP-DHCP}} ''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">
        <description>
          ''Port-set ID'' (PSID) offset in {{units}}.  The number of Port-sets is 2^{{param}}.
          Corresponds to the {{bibref|MAP-DHCP}} ''S46_PORTPARAMS'' (Port Parameters) option's ''offset'' field.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="16"/>
            <units value="bits"/>
          </unsignedInt>
          <default type="object" value="4"/>
        </syntax>
      </parameter>
      <parameter name="PSIDLength" access="readWrite">
        <description>
          The length in {{units}} of the ''Port-set id'' (PSID) configured in the {{param|PSID}} parameter.
          Corresponds to the {{bibref|MAP-DHCP}} ''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">
        <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|MAP-DHCP}} ''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">
        <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 4, ports [0:4095] are not included in the Port-sets.
          As specified in {{bibref|MAP}}, this parameter is relevant only when {{param|PSIDOffset}} is 0.
        </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}.Rule.{i}." access="readWrite" numEntriesParameter="RuleNumberOfEntries" enableParameter="Enable" minEntries="0" maxEntries="unbounded">
      <description>
        The MAP domain's Mapping Rules {{bibref|MAP}}.  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" activeNotify="canDeny">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="Alias"/>
        </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|MAP-DHCP}} ''S46_RULE'' option.
              </description>
            </enumeration>
            <enumeration value="Static">
              <description>
                Present in the factory default configuration, created by the ACS, or created by some other management entity (e.g. via a GUI)
              </description>
            </enumeration>
          </string>
          <default type="object" value="Static"/>
        </syntax>
      </parameter>
      <parameter name="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|MAP-DHCP}} ''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|MAP-DHCP}} ''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|MAP-DHCP}} ''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|MAP-DHCP}} ''S46_RULE'' option's ''flags'' field's ''F-Flag''.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.MAP.Domain.{i}.Interface." access="readOnly" minEntries="1" maxEntries="1">
      <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" access="readOnly">
        <description>
          The current operational state of the interface (see {{bibref|TR-181i2|Section 4.2.2}}). {{enum}}
          When {{param|Enable}} is {{false}} then {{param}} SHOULD normally be {{enum|Down}} (or {{enum|NotPresent}} or {{enum|Error}} if there is a fault condition on the interface). 
          When {{param|Enable}} is changed to {{true}} then {{param}} SHOULD change to {{enum|Up}} if and only if the interface is able to transmit and receive network traffic; it SHOULD change to {{enum|Dormant}} if and only if the interface is operable but is waiting for external actions before it can transmit and receive network traffic (and subsequently change to {{enum|Up}} if still operable when the expected actions have completed); it SHOULD change to {{enum|LowerLayerDown}} if and only if the interface is prevented from entering the {{enum|Up}} state because one or more of the interfaces beneath it is down; it SHOULD remain in the {{enum|Error}} state if there is an error or other fault condition detected on the interface; it SHOULD remain in the {{enum|NotPresent}} state if the interface has missing (typically hardware) components; it SHOULD change to {{enum|Unknown}} if the state of the interface can not be determined for some reason.
          This parameter is based on ''ifOperStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Up"/>
            <enumeration value="Down"/>
            <enumeration value="Unknown"/>
            <enumeration value="Dormant"/>
            <enumeration value="NotPresent"/>
            <enumeration value="LowerLayerDown"/>
            <enumeration value="Error" optional="true"/>
          </string>
        </syntax>
      </parameter>
      <parameter name="Alias" access="readWrite" activeNotify="canDeny">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="Alias"/>
        </syntax>
      </parameter>
      <parameter name="Name" access="readOnly">
        <description>
          The textual name of the interface as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>
      <parameter name="LastChange" access="readOnly" activeNotify="canDeny">
        <description>
          The accumulated time in {{units}} since the interface entered its current operational state.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>
      <parameter name="LowerLayers" access="readWrite">
        <description>
          {{list}} {{reference|an interface object that is stacked immediately below this interface object}}  See {{bibref|TR-181i2|Section 4.2.1}}.
          Note: Since 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>
        </syntax>
      </parameter>
    </object>

    <object name="Device.MAP.Domain.{i}.Interface.Stats." access="readOnly" minEntries="1" maxEntries="1">
      <description>
        Throughput statistics for this MAP domain interface.
        The CPE MUST reset the interface's Stats parameters (unless otherwise stated in individual object or parameter descriptions) either when the interface becomes operationally down due to a previous administrative down (i.e. the interface's {{param|#.Status}} parameter transitions to a down state after the interface is disabled) or when the interface becomes administratively up (i.e. the interface's {{param|#.Enable}} parameter transitions from {{false}} to {{true}}). Administrative and operational interface status is discussed in {{bibref|TR-181i2|section 4.2.2}}.
      </description>
      <parameter name="BytesSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of bytes transmitted out of the interface, including framing characters.
        </description>
        <syntax>
          <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 packets transmitted out of the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>
      <parameter name="PacketsReceived" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of packets received on the interface.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>
      <parameter name="ErrorsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of outbound packets that could not be transmitted because of errors.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>
      <parameter name="ErrorsReceived" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of inbound packets that contained errors preventing them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>
      <parameter name="UnicastPacketsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of packets requested for transmission which were not addressed to a multicast or broadcast address at this layer, including those that were discarded or not sent.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>
      <parameter name="UnicastPacketsReceived" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a higher layer, which were not addressed to a multicast or broadcast address at this layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>
      <parameter name="DiscardPacketsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of outbound packets which were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>
      <parameter name="DiscardPacketsReceived" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of inbound packets which were chosen to be discarded even though no errors had been detected to  prevent their being delivered. One possible reason for discarding such a packet could be to free up buffer space.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>
      <parameter name="MulticastPacketsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of packets that higher-level protocols requested for transmission and which were addressed to a multicast address at this layer, including those that were discarded or not sent.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>
      <parameter name="MulticastPacketsReceived" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a higher layer, which were addressed to a multicast address at this layer.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>
      <parameter name="BroadcastPacketsSent" access="readOnly">
        <description>
          The total number of packets that higher-level protocols requested for transmission and which were addressed to a broadcast address at this layer, including those that were discarded or not sent.
          Note that IPv6 does not define broadcast addresses, so IPv6 packets will never cause this counter to increment.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>
      <parameter name="BroadcastPacketsReceived" access="readOnly">
        <description>
          The total number of received packets, delivered by this layer to a higher layer, which were addressed to a broadcast address at this layer.
          Note that IPv6 does not define broadcast addresses, so IPv6 packets will never cause this counter to increment.
        </description>
        <syntax>
          <dataType ref="StatsCounter64"/>
        </syntax>
      </parameter>
      <parameter name="UnknownProtoPacketsReceived" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of packets received via the interface which were discarded because of an unknown or unsupported  protocol.
        </description>
        <syntax>
          <dataType ref="StatsCounter32"/>
        </syntax>
      </parameter>
    </object>
    
    <object base="Device.QoS.Classification.{i}." access="readWrite" minEntries="0" maxEntries="unbounded">
      <parameter base="Interface" access="readWrite">
        <description action="append">
          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>
      </parameter>
    </object>

    <object base="Device.NAT.InterfaceSetting.{i}." access="readWrite" minEntries="0" maxEntries="unbounded">
      <parameter base="Status" access="readOnly">
        <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|MAP}}.
              </description>
            </enumeration>
            <enumeration value="Enabled_PortMappingDisabled"/>
            <enumeration value="Error_Misconfigured"/>
            <enumeration value="Error"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object base="Device.NAT.PortMapping.{i}." access="readWrite" minEntries="0" maxEntries="unbounded">
      <parameter base="ExternalPort" access="readWrite">
        <description action="replace">
          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>
      </parameter>
      <parameter base="InternalPort" access="readWrite">
        <description action="replace">
          The port on {{param|InternalClient}} that the gateway SHOULD forward traffic to.
        </description>
      </parameter>
    </object>

    <object name="Device.PCP." access="readOnly" minEntries="1" maxEntries="1" dmr:previousObject="Device.NAT.">
      <description>
        Properties for Port Control Protocol (PCP) {{bibref|RFC6887}}.
        See the PCP Theory of Operation {{bibref|TR-181i2a8|Appendix XIV}} for a description of the working of this PCP data model.
      </description>
      <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" minEntries="0" maxEntries="unbounded" numEntriesParameter="ClientNumberOfEntries" enableParameter="Enable">
      <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" activeNotify="canDeny">
        <description>{{datatype|expand}}</description>
        <syntax>
          <dataType ref="Alias"/>
        </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="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">
      <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">
      <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" minEntries="0" maxEntries="unbounded" enableParameter="Enable" numEntriesParameter="ServerNumberOfEntries">
      <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" activeNotify="canDeny">
        <description>{{datatype|expand}}</description>
        <syntax>
          <dataType ref="Alias"/>
        </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 ACS, 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" minEntries="0" maxEntries="unbounded" enableParameter="Enable" numEntriesParameter="InboundMappingNumberOfEntries">
      <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 ACS 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" activeNotify="canDeny">
        <description>{{datatype|expand}}</description>
        <syntax>
          <dataType ref="Alias"/>
        </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 ACS, 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" minEntries="0" maxEntries="unbounded" numEntriesParameter="FilterNumberOfEntries">
      <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" activeNotify="canDeny">
        <description>{{datatype|expand}}</description>
        <syntax>
          <dataType ref="Alias"/>
        </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="readOnly">
        <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}}.
        </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" minEntries="0" maxEntries="unbounded" enableParameter="Enable" numEntriesParameter="OutboundMappingNumberOfEntries">
      <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 ACS 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" activeNotify="canDeny">
        <description>{{datatype|expand}}</description>
        <syntax>
          <dataType ref="Alias"/>
        </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 ACS, 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>

    
    <profile name="ADSL2:2" base="ADSL2:1">
       <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="VDSL2:2" base="VDSL2:1">
      <object ref="Device.DSL." requirement="present">
        <parameter ref="LineNumberOfEntries" requirement="readOnly"/>
        <parameter ref="ChannelNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.DSL.Line.{i}." requirement="present">
        <parameter ref="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="CellularInterfaceBase:1">
      <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">
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="MSISDN" 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">
      <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="readWrite"/>
        <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">
        <parameter ref="IMSI" requirement="readOnly"/>
        <parameter ref="ICCID" requirement="readOnly"/>
      </object>  
    </profile>

    <profile name="CellularInterfaceStats:1">
      <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="LLDPBaseline:1">
      <object ref="Device.LLDP." requirement="present">
      </object>
      <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">
      <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="GREBasic:1">
      <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">
      <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="MAPBasic:1">
      <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">
      <object ref="Device.MAP.Domain.{i}." requirement="present">
        <parameter ref="PSIDOffset" requirement="readWrite"/>
        <parameter ref="PSIDLength" requirement="readWrite"/>
        <parameter ref="PSID" requirement="readWrite"/>
        <parameter ref="IncludeSystemPorts" requirement="readWrite"/>
      </object>
      <object ref="Device.MAP.Domain.{i}.Rule.{i}." requirement="createDelete">
        <parameter ref="EABitsLength" requirement="readWrite"/>
      </object>
    </profile>
  </model>
</dm:document>
