| Age | Commit message (Collapse) | Author |
|
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.
|
|
Calculation
In AllSequentialIncreasesLessThan (nee IncreasesLessThan), an earlier
version of this function did not properly take into account the order
in which values were added to the moving average when calculating
the percent change. This patch fixes that error and adds an additional
criteria for the function to return `true`: there must be *at least*
`intervals` collected samples.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|