# TR143-Datamodel-support-on-Genie

**URL:** <https://forum.genieacs.com/t/tr143-datamodel-support-on-genie/497>\
**Category:** Uncategorized\
**Created:** [December 4, 2019, 6:02am UTC](https://forum.genieacs.com/t/tr143-datamodel-support-on-genie/497 "2019-12-04T06:02:17Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![digvijay](https://avatars.discourse-cdn.com/v4/letter/d/b9bd4f/32.png) [@digvijay](https://forum.genieacs.com/u/digvijay)\
**Post date:** [December 4, 2019, 6:02am UTC](https://forum.genieacs.com/t/tr143-datamodel-support-on-genie/497/1 "2019-12-04T06:02:17Z")

</div>

Hi Team,

I want to use the Tr143 for the Speed test between ACS and CPE ,

Where do i found more information on the TR143 support on Genie ?

If anyone has deployment experience on Tr143 please share some details on the implementation ?.

---

<div class="post-metadata">

**Author:** ![akcoder](https://yyz1.discourse-cdn.com/flex035/user_avatar/forum.genieacs.com/akcoder/32/11_2.png) [@akcoder](https://forum.genieacs.com/u/akcoder)\
**Post date:** [December 4, 2019, 7:23pm UTC](https://forum.genieacs.com/t/tr143-datamodel-support-on-genie/497/2 "2019-12-04T19:23:37Z")

</div>

TR143 is supported out of the box by Genie… TR143 is another data model extension to the TR069 spec.

As such, you will need to add the necessary infrastructure to your environment, depending on what your CPEs support.

Example, we are doing TR143 upload/download and UDP Echo diag. We added a FTP server, created 5m,10m,25m,50m,100m,250m,500m and 1gb files. Depending on the customers speed, we set the `InternetGatewayDevice.DownloadDiagnostics.DownloadURL` to `ftp://foo.com/<appropriately_sized_file_for_30_second_test>.bin`

Then set the `InternetGatewayDevice.DownloadDiagnostics.DiagnosticsState` value to `Requested` and wait for the CPE to send back a diag complete event, then refresh the `InternetGatewayDevice.DownloadDiagnostics` parameters and collect the results.

Upload is performed much the same way, except you can set either `TestFileLength` or `TimeBasedTestDuration` depending on what your CPE supports, poing the CPE to an open FTP server, set the `DiagnosticsState` and wait.

`UDPEchoDiagnostics` is much more involved and a bit of a pain in the ass honestly. You can use this [udpserver.c](https://gist.github.com/akcoder/8c04adecfed9f0b73ebda8c874f12da9) I modified. Its based on the UDP echo server by CMU and fixes an issue where the server would only echo back bytes until it got to a \0. The SmartRG CPES send 24 null bytes instead of ASCII text and so I had to break out wireshark to figure out what was really going on… As one of my best friends says **"The packets don’t lie…"**

The rest of the implementation details I’m going to leave as an exercise to the reader (calculating speed, etc).
