Closed stephen-soltesz closed 1 year ago
Changes Missing Coverage | Covered Lines | Changed/Added Lines | % | ||
---|---|---|---|---|---|
ndt7/download/sender/sender.go | 2 | 8 | 25.0% | ||
ndt7/upload/sender/sender.go | 2 | 9 | 22.22% | ||
ndt7/handler/handler.go | 3 | 21 | 14.29% | ||
<!-- | Total: | 7 | 38 | 18.42% | --> |
Files with Coverage Reduction | New Missed Lines | % | ||
---|---|---|---|---|
ndt5/ndt5.go | 1 | 89.5% | ||
ndt5/c2s/c2s.go | 2 | 73.21% | ||
ndt5/protocol/protocol.go | 2 | 83.86% | ||
ndt5/web100/web100_linux.go | 2 | 94.44% | ||
<!-- | Total: | 7 | --> |
Totals | |
---|---|
Change from base Build 1559: | -1.3% |
Covered Lines: | 1769 |
Relevant Lines: | 2201 |
FYI: @bassosimone @robertodauria @mattmathis your comments/feedback are welcome. Regard everything as having a question at the end: "this is how I built a prototype; is there a better way to do this?"
Obsolete
This change is a prototype that would add user parameters to NDT7 measurements and archival results. The current implementation is not ready to merge in its current form. This is an RFC.
The current implementation supports the following parameters:
param_close_after_download_bytes_acked
- the server will close the websocket conn after observing tcpinfo.BytesAcked greater than the given value.param_close_after_upload_bytes_received
- the server will close the websocket conn after observing tcpinfo.BytesReceived greater than the given value.param_cubic_download
- parsed but not enableable. Included as an illustration of how we could enable this or other options in the future.In the first two cases, the measurement/observation events depend on the
measurer
memoryless sample frequency - meaning that the time between actually reaching theBytesAcked
orBytesReceived
threshold (kernel state) and observing that (ndt-server) could be up to MaxPoissonSamplingInterval (625ms). So, there is a fundamental imprecision around when the server observes and closes the connection; there is no guarantee about how much data is actually transferred, only that it is at least the amount requested.Currently, the parameter value is in bytes and unconstrained. Ideally, we would limit these values to a fixed set of thresholds, e.g. 1, 2.5, 5, 10, etc..
This change is