| Age | Commit message (Collapse) | Author |
|
|
|
When a test_endpoint is returned in the config for a test, all
requests will be sent to that host but the :authority pseudo header
(nee: Host: message header) will contain the host specified in
the various `_url` fields of the config data.
|
|
Granular throughput logging
Measures on both Up/Down connections
Adds "[OMIT]" tag to csvlogger
|
|
|
|
With this commit the project is being relicensed under GPLv2. All
contributors to the code prior to this commit have given their explicit
approval for the project to be relicensed (see
https://github.com/network-quality/goresponsiveness/issues/41).
|
|
Extends throughput logging to continue even after saturation has been reached by the algorithm.
|
|
|
|
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.
|
|
We never really implemented it any way!
|
|
With this patch, data logging now supports reporting the moving
average of upload/download throughput as saturation is pursued.
|
|
|
|
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).
|
|
|
|
This is a WIP for supporting v2 of the RPM spec.
|
|
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!).
|
|
Now that there is support for GetTCPConnectionInfo on macOS, we can
re-enable extended stats on the macOS platform!
|
|
|
|
|
|
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.
|
|
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.
|
|
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.
|
|
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`.
|
|
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!
|
|
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).
|
|
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.)
|
|
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.
|
|
This patch begins the work on updated RPM calculations using
the httptrace infrastructure. Because we are still not able
to break out the TLS handshake time due to upstream bugs, there
are some workarounds in place. However, the numbers appear much
more sane.
|
|
1. Make a traceable interface for all things that can be wrapped
in an httptrace.ClientTrace.
2. Refactor debugging system into debug package.
|
|
Two unrelated changes:
1. Add full support for self-signed HTTPS certificates on the server
2. Add support for multiple log levels: So far we only use one, but
adding support for additional levels will help us tier the levels to
filter out excessive messages.
|
|
|
|
See Issue #10.
Begin implementing the plumbing required to perform more precise RTT/RPM
measurements.
|
|
The newest version of the specification replaces the term
bearing with the term generating. This patch brings the updated
language to the code to make it easier to track the implementation's
conformance to the spec.
|
|
When running without SSL key logging enabled, the client
will segfault. This patch corrects that (obvious) error.
|
|
|
|
|
|
|
|
|
|
Pretty-print output (add banner, only display three sig-figs, etc)
|
|
|
|
|
|
This fix might be controversial and we will have to confirm it with the
protocol designers: We will stop the actual download of the "large" file
when we are about to start doing the RPM calculation.
|
|
|
|
This is a "How was this ever working?" update.
1. As it turns out, when you customize a Transport for an
http.Client, the transport is 'naturally' an HTTP1 transport.
To make it connect via HTTP2, you must use an http2.Transport
from the golang.org/x/net/http2 package.
2. Add support for logging TLS per-session keys in order
to aid debugging.
|
|
|
|
By default go's network stack "helpfully" reuses the Transports
among http.Clients. This will artifically inhibit the full use
of the network. Creating new Transports for every http.Client
will keep this from happening.
|
|
|
|
The factor of five being included to account for the fact that a single
test accumulated five RTTs was being applied twice. This patch fixes
that.
|
|
In the case where the user omitted the -debug flag the client
would still output debugging information regardless. This commit
fixes that.
|
|
cooldownPeriod should really be a time.Duration. Make it so.
|
|
Improve robustness of the client in the case(s) where a network
goes away in the middle of the test. Report errors properly in
these cases and gracefully end the test.
|