summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-08-17[Bugfix] Do not unconditionally output message about data loggerWill Hawkins
2022-08-17[Feature] Add TCP information (RTT and Cwnd) to LoggingWill Hawkins
This patch adds support for logging the underlying RTT and Cwnd of the TCP connection used when doing probes. More work to follow in order to add support for this information on Windows and Darwin.
2022-08-17Remove the -strict optionWill Hawkins
We never really implemented it any way!
2022-08-10Fix typos in the license textWill Hawkins
There were several places where boilerplate language was left in the license block at the top of files containing source.
2022-07-29[Feature] Add support for logging throughput measurementsWill Hawkins
With this patch, data logging now supports reporting the moving average of upload/download throughput as saturation is pursued.
2022-07-16[Formatting] Cleanup long lines.Will Hawkins
2022-07-16[Feature] Support spec v2 (4/4); Add data loggingWill Hawkins
Besides work to complete the support for v2 of the RFC, this patch adds support for logging each of the probe results to a CSV file (--logger-filename).
2022-07-02[Feature] Support spec v2 3/nWill Hawkins
2022-07-01[Feature] Support spec v2 2/nWill Hawkins
2022-07-01[Feature] Support spec v2Will Hawkins
This is a WIP for supporting v2 of the RPM spec.
2022-06-29Merge pull request #31 from network-quality/data-analysis-routerWill Hawkins
Cipher comparison on non-AES hardware
2022-06-28Cipher comparison on non-AES hardwareJJ
Compares measurement capabilities (for AES vs CHACHA ciphers) on an older "low-end" router that does not have AES hardware support. More information in README.md
2022-06-22[Cleanup] Make long lines shorter and fix static fmt warningsWill Hawkins
Besides running golines (for the first time in a while now that the tool supports generics), this commit removes punctuation and newlines from Errorf parameters -- something that gofmt does not like (I never knew!).
2022-06-22Merge pull request #30 from network-quality/extended-stats-windowsWill Hawkins
[Feature] Add extendedstats support for Windows
2022-06-22[Feature] Add extendedstats support for WindowsJJ
The added support has similar stats to getTCPInfo for linux. Signed-off-by: Will Hawkins <[email protected]>
2022-06-17[Feature] Use the new GetTCPConnectionInfo API for extended stats on macOSWill Hawkins
Now that there is support for GetTCPConnectionInfo on macOS, we can re-enable extended stats on the macOS platform!
2022-06-17[Feature] Expose send/recv mss, and reorderings in extended statsWill Hawkins
@moeller1 requested additional stats on the *nix platforms. Subsequent patch will enable the same statistics on macOS.
2022-06-15[Bugfix] Compilation error on Windows from missing packageWill Hawkins
In the conditionally compiled code on Windows, there was a missing "fmt" import that broke the build. This patch rectifies that problem.
2022-06-13Merge pull request #25 from network-quality/timeout-patchWill Hawkins
Timeout patch
2022-06-13Merge branch 'main' into timeout-patchJJ
2022-06-13Add optional timeoutsJJ
2022-06-12[Bugfix] Dereference nil when type assertions failed in ↵Will Hawkins
IncorporateConnectionStats Errors as a result of failed type assertions in IncorporateConnectionStats were caught/logged but there was no function-termination control flow associated with these error conditions. As a result, control would continue and cause problems. This patch fixes that.
2022-06-10Merge pull request #22 from richb-hanover/mainWill Hawkins
Update Dockerfile and .gitignore
2022-06-10Merge pull request #24 from acohn/darwin-noextendedstatsWill Hawkins
Disable extendedstats for Darwin builds
2022-06-10update go.mod: golang.org/x/sys is no longer indirectAlex Cohn
2022-06-10Disable extendedstats on darwinAlex Cohn
The Darwin golang.org/x/sys/unix package does not contain a TCPInfo struct, which causes the project not to compile on macOS systems.
2022-06-07Merge branch 'network-quality:main' into mainRich Brown
2022-06-07Add `--rm` option to remove the Docker container after running RPM Test.Rich Brown
(Unused containers accumulate if you don't --rm.)
2022-06-07[Bugfix] Conditional build support broken for WindowsWill Hawkins
Now that we are conditionally building parts of the source code so that we can use *nix's platform support for TCPInfo, it is hard to make sure that I have all platforms working right at the same time. @Schickendantzj helped debug this error this morning.
2022-06-05Update Dockerfile for golang 1.18.3 and alpine 3.16Rich Brown
2022-06-05Merge branch 'network-quality:main' into mainRich Brown
2022-06-05Update Docker base to use golan 1.18.1Rich Brown
2022-06-05[Feature] Add -extended-stats for *nix platformsWill Hawkins
On *nix platforms, there is now a `-extended-stats` option that will print out some extended statistics for the test. The statistics are based on information gleaned from the `TCP_INFO` of the underlying TCP connections. What is implemented so far is just a proof of concept of the extended stats that could be calculated. Depending on what users want, we can add additional extended statistics.
2022-06-04[Feature] Add conditional compilation support for GetTCPInfoWill Hawkins
Now there is functionality for conditionally supporting GetTCPInfo depending on the platform. If the platform supports it, then the client can call utilities.GetTCPInfo. In the case that the platform does not support the GetTCPInfo function call, the result is an error of the type `NotImplemented`.
2022-06-04[Feature] Access TCP_INFO about underlying TCP connectionsWill Hawkins
This will only work on *nix systems. Code that displays information in this PR is only exemplary -- I am sure that there are better places in the code to display it!
2022-06-04[Bugfix #21] Bad alignment of elements in structs accessed atomicallyWill Hawkins
Fixes #21
2022-05-17[Comments] Fix a few commentsWill Hawkins
1. A misleading comment was corrected. 2. A typo was fixed.
2022-05-13[Improvement] Increase granularity of transfer rate calculationWill Hawkins
Previously the code relied on the fact that the go runtime would wake up the saturation go function at exactly 1 second intervals, as we asked. With this change, the code takes into account any minor fluctuations in that time when calculating the throughput in an interval. I hope that this change is an improvement.
2022-05-13[Refactor] Additional (general) refactoring.Will Hawkins
2022-05-13[Refactor] Create config package and package-ify saturate()Will Hawkins
1. Create a separate package to handle the config information. 2. Move the saturate functionality into the rpm package. 3. Do general renaming/refactoring so that we are consistently saying measurement and not RTT (this nomenclature is more consistent with the standard).
2022-05-12[Functionality] Match Apple's Client RPM Calcuation -- Remove DNSWill Hawkins
Per a (to-be-released) update from the spec, the time for a DNS lookup is no longer considered to make up a portion of the RPM.
2022-05-12[Functionality] Change definition of percent changeWill Hawkins
Switch from calculating "difference" as percent difference to calculating the difference as percent change.
2022-05-11[Refactor/Bugfix] Refactor RPM calculation and fix calculation algorithmWill Hawkins
As it turns out, I was misreading the algorithm for calculating the RPM based upon the measurements taken during execution. This patch fixes that mistake and also (starts) renames "RTT" as "measurement" (those are technically a better nomenclature according to the spec.)
2022-05-11[Bugfix] Support reused connections in calculating RPMWill Hawkins
There was an error in prior versions when calculating the RPM in the presence of reused connections because invalid time values were being compared. This patch fixes that error.
2022-05-11Refactor RPM calculationsWill Hawkins
Refactor RPM calculations to make them more reusble. Enable (perhaps temporarily) probe calculations on the saturated connections. This change is to check whether this makes our RPM calculations match the ones generated by Apple's native client.
2022-05-09[Data analysis] Script that generated those dataWill Hawkins
2022-05-09[Data Analysis] First data analysis resultsWill Hawkins
The first set of raw data and a tool for munging it into csv files. The data look promising but there are a few things that we need to address.
2022-05-06Merge branch 'main' of https://github.com/richb-hanover/goresponsiveness-1Rich Brown
* 'main' of https://github.com/richb-hanover/goresponsiveness-1: [Bugfix] Null pointer dereference when debugging disabled
2022-05-05[Bugfix] Null pointer dereference when debugging disabledWill Hawkins
When there is no debugging enabled, there was a null pointer dereference as a result of invoking `saturate` with a null pointer to a `debug.Debugging` structure.
2022-05-05Merge branch 'main' of https://github.com/richb-hanover/goresponsiveness-1Rich Brown
* 'main' of https://github.com/richb-hanover/goresponsiveness-1: Upgraded RPM Calculation Support (Take 1) Make Traceable Interface and Refactor Debugging Fully support self-signed certificates (and add debug levels)