Merge "cwmpd: change initialization sequence."
diff --git a/dm_root.py b/dm_root.py
index 0625ef2..7f44945 100644
--- a/dm_root.py
+++ b/dm_root.py
@@ -113,6 +113,10 @@
     cata.HAT = dm.hat.Hat()
     cata.HttpDownload = dm.ip_diag_http.DiagHttpDownload()
     cata.Iperf3 = dm.ip_diag_iperf3.DiagIperf3()
+    cata.IperfNumberOfEntries = 10
+    cata.IperfList = {}
+    for i in range(1, cata.IperfNumberOfEntries + 1):
+      cata.IperfList[str(i)] = dm.ip_diag_iperf3.DiagIperf3()
     cata.Isostream = dm.isostream.Isostream()
     cata.Ping = dm.ip_diag_ping.DiagPing()
     cata.SelfTest = dm.selftest.SelfTest()
diff --git a/tr/schema/x-cata181.xml b/tr/schema/x-cata181.xml
index 0f604b0..ce8a00d 100644
--- a/tr/schema/x-cata181.xml
+++ b/tr/schema/x-cata181.xml
@@ -1330,6 +1330,65 @@
       </parameter>
     </object>
 
+    <object name="Device.X_CATAWAMPUS-ORG.Iperf.{i}." access="readWrite" numEntriesParameter="IperfNumberOfEntries" minEntries="1" maxEntries="unbounded">
+      <description>Run iperf3 and send the result.</description>
+      <parameter name="DiagnosticsState" access="readWrite" activeNotify="canDeny">
+        <description>Indicates availability of diagnostic data.  {{enum}}
+If the ACS sets the value of this parameter to {{enum|Requested}}, the CPE MUST initiate the corresponding diagnostic test.  When  writing, the only allowed value is {{enum|Requested}}.  To ensure the use of the proper test parameters (the writable parameters in  this object), the test parameters MUST be set either prior to or at the same time as (in the same SetParameterValues) setting the  {{param}} to {{enum|Requested}}.
+When requested, the CPE SHOULD wait until after completion of the communication session with the ACS before starting the diagnostic.
+When the test is completed, the value of this parameter MUST be either {{enum|Complete}} (if the test completed successfully), or one  of the ''Error'' values listed above.
+</description>
+        <syntax>
+          <string>
+            <enumeration value="None" access="readOnly"/>
+            <enumeration value="Requested"/>
+            <enumeration value="Complete" access="readOnly"/>
+            <enumeration value="Error_Internal" access="readOnly"/>
+            <enumeration value="Error_Other" access="readOnly"/>
+          </string>
+        </syntax>
+      </parameter>
+      <parameter name="DSCP" access="readWrite">
+        <description>DiffServ codepoint to be used for the test packets.  By default the CPE SHOULD set this value to zero.</description>
+        <syntax>
+          <unsignedInt>
+            <range minInclusive="0" maxInclusive="63"/>
+          </unsignedInt>
+        </syntax>
+      </parameter>
+      <parameter name="ExtraArguments" access="readWrite">
+        <description>Space-separated extra arguments to be passed to iperf3.</description>
+        <syntax>
+          <string>
+            <size maxLength="256"/>
+          </string>
+        </syntax>
+      </parameter>
+      <parameter name="Host" access="readWrite">
+        <description>If set, run iperf in client mode and directed to this host. This can be an IPv4 address, an IPv6 address, or a hostname. If not set, run iperf3 in server mode.</description>
+        <syntax>
+          <string>
+            <size maxLength="256"/>
+          </string>
+        </syntax>
+      </parameter>
+      <parameter name="ProtocolVersion" access="readWrite">
+        <description>The connection can be restricted to IPv4 or IPv6.</description>
+        <syntax>
+          <string>
+            <enumeration value="Unspecified"/>
+            <enumeration value="IPv4"/>
+            <enumeration value="IPv6"/>
+          </string>
+          <default type="object" value="Unspecified"/>
+        </syntax>
+      </parameter>
+      <parameter name="Result" access="readOnly">
+        <description>Text output generated during the iperf3 test.</description>
+        <syntax><string/></syntax>
+      </parameter>
+    </object>
+
     <object base="Device.IP.Diagnostics.TraceRoute." access="readOnly" minEntries="1" maxEntries="1">
       <parameter name="IPVersion" access="readWrite">
         <description>The connection can be restricted to IPv4 or IPv6.</description>