# UploadDiagnostics how does it work and how to use that?

**URL:** <https://forum.genieacs.com/t/uploaddiagnostics-how-does-it-work-and-how-to-use-that/490>\
**Category:** Uncategorized\
**Created:** [November 29, 2019, 9:26am UTC](https://forum.genieacs.com/t/uploaddiagnostics-how-does-it-work-and-how-to-use-that/490 "2019-11-29T09:26:00Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![kyob](https://yyz1.discourse-cdn.com/flex035/user_avatar/forum.genieacs.com/kyob/32/122_2.png) [@kyob](https://forum.genieacs.com/u/kyob)\
**Post date:** [November 29, 2019, 9:26am UTC](https://forum.genieacs.com/t/uploaddiagnostics-how-does-it-work-and-how-to-use-that/490/1 "2019-11-29T09:26:00Z")

</div>

I know that question is not strictly connected to GenieACS but maybe someone can help me 🙂

My working example for DownloadDiagnostics (it’s clear for me):

```auto
curl -i 'http://localhost:7557/devices/F48CEB-Router-QXNN1J1004416/tasks?connection_request' -X POST --data '{"name":"setParameterValues", "parameterValues":[["InternetGatewayDevice.DownloadDiagnostics.DiagnosticsState", "Requested", "xsd:string"],["InternetGatewayDevice.DownloadDiagnostics.DownloadURL", "http://www.ovh.net/files/100Mb.dat", "xsd:string"]]}'

```

However UploadDiagnostics it’s not clear. I dont’t know how exacly upload diagnostics work.

I will be grateful for example how to use UploadDiagnostics with curl.

---

<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 2, 2019, 5:36pm UTC](https://forum.genieacs.com/t/uploaddiagnostics-how-does-it-work-and-how-to-use-that/490/2 "2019-12-02T17:36:44Z")

</div>

Please review the [TR for this](https://cwmp-data-models.broadband-forum.org/tr-143-1-1-0.html#D.TR-1:4.UploadDiagnostics.). If you still have issues figuring this out after giving it an honest go, I will take the time to write some stuff up.

-dan

---

<div class="post-metadata">

**Author:** ![kyob](https://yyz1.discourse-cdn.com/flex035/user_avatar/forum.genieacs.com/kyob/32/122_2.png) [@kyob](https://forum.genieacs.com/u/kyob)\
**Post date:** [December 2, 2019, 7:20pm UTC](https://forum.genieacs.com/t/uploaddiagnostics-how-does-it-work-and-how-to-use-that/490/3 "2019-12-02T19:20:08Z")

</div>

I know the theory, but one example should solve my problem. Any example, not necessarily using curls. Generally, I don’t know how to “pass” the file that will be used to test the upload speed.

I will be grateful for the practical example.

---

<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 2, 2019, 8:33pm UTC](https://forum.genieacs.com/t/uploaddiagnostics-how-does-it-work-and-how-to-use-that/490/4 "2019-12-02T20:33:56Z")

</div>

Thats specified by `InternetGatewayDevice.UploadDiagnostics.UploadURL`.

The URL can be either FTP or HTTP, depending on value(s) in `InternetGatewayDevice.Capabilities.PerformanceDiagnostic.UploadTransports`. If you do FTP, the receiving FTP server has to either allow anonymous writes, or your CPE has to support FTP auth. FTP authentication is not part of the spec so it would require vendor support. If you choose FTP, I recommend you limit uploads to within your IP space and run a cron job every minute which purges all files older than 10 minutes. This will limit the attack surface and hopefully prevent your FTP server from being used as a drop for illicit files.

---

<div class="post-metadata">

**Author:** ![kyob](https://yyz1.discourse-cdn.com/flex035/user_avatar/forum.genieacs.com/kyob/32/122_2.png) [@kyob](https://forum.genieacs.com/u/kyob)\
**Post date:** [December 3, 2019, 1:15pm UTC](https://forum.genieacs.com/t/uploaddiagnostics-how-does-it-work-and-how-to-use-that/490/5 "2019-12-03T13:15:02Z")

</div>

For example is this valid UploadURL: `ftp://anonymous@ftp.domain.com/myTestFileForUploadDiagnostics.bin` ?

That’s all or should do some extra stuff?

---

<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 3, 2019, 5:21pm UTC](https://forum.genieacs.com/t/uploaddiagnostics-how-does-it-work-and-how-to-use-that/490/6 "2019-12-03T17:21:22Z")

</div>

`ftp://ftp.domain.com/myTestFileForUploadDiagnostics.bin`
