ndt-server
ndt-server copied to clipboard
RFC: Add user-specified parameters for transfer byte limits
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 the BytesAcked
or BytesReceived
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..
Pull Request Test Coverage Report for Build 1562
- 7 of 38 (18.42%) changed or added relevant lines in 3 files are covered.
- 7 unchanged lines in 4 files lost coverage.
- Overall coverage decreased (-1.3%) to 80.373%
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 |
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 |
💛 - Coveralls
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