Summary: Several "Network Path Model" parameters are described in Sec. 2.9 of the BBRv2 IETF draft. These quantities evolve throughout the connection and they are useful to analyze BBRv2 performance. This diff adds inflight_hi, inflight_lo, bandwidth_hi, and bandwidth_lo to the qlog.
Reviewed By: mjoras
Differential Revision: D61414936
fbshipit-source-id: 2862db2a6aab336fd8a60e4ae5b358e9ab5588b4
Summary:
The idea here is to make it so we can swap out the type we are using for optionality. In the near term we are going to try swapping towards one that more aggressively tries to save size.
For now there is no functional change and this is just a big aliasing diff.
Reviewed By: sharmafb
Differential Revision: D57633896
fbshipit-source-id: 6eae5953d47395b390016e59cf9d639f3b6c8cfe
Summary:
This helps with tuning l4s reaction in Cubic and debugging l4s in general.
To avoid spamming the qlog, an l4s weights update is only logged if new CE marks are echoed from the peer.
Reviewed By: sharmafb
Differential Revision: D57874704
fbshipit-source-id: 9c3f139aec73fc0dbd8d38e2237d6a6478cf1e3d
Summary: This is not used in the parsing tools so should not have side effects. Also changed to lower case for consistency.
Reviewed By: kvtsoy
Differential Revision: D57797450
fbshipit-source-id: cd129a93f48ad2ec146cddd88ec024ce1b581bee
Summary:
Read echoed ECN counts from incoming ACK_ECN frames.
Write ECN counts from AckState into outgoing ACK_ECN frames.
This also logs both the ECN counts in the read/writter packets in qlog.
Reviewed By: kvtsoy
Differential Revision: D54967248
fbshipit-source-id: 68b910865515271abfd1fa61fc43ce1cb12f30a7
Summary: For Congestion Detection work, there is a need to record all received timestamps from the `ACK_RECEIVE_TIMESTAMPS` frame. Previously, only the first and last timestamp deltas were logged.
Reviewed By: jbeshay
Differential Revision: D45295321
fbshipit-source-id: b493f31564394c4376c30f0c46eed2c7b591490a
Summary: Add the new IMMEDIATE_ACK frame from the ack frequency draft.
Reviewed By: mjoras
Differential Revision: D38523438
fbshipit-source-id: 79f4a26160ccf4333fb79897ab4ace2ed262fa01
Summary:
- Use varint reordering threshold (this is still being discussed, using varint until a decision is made)
- Track server's minAckDelay on client
- Track ack frequency frame sequence number
- Improve frame parsing error logs
- Add some unit tests
Reviewed By: hanidamlaj
Differential Revision: D38289108
fbshipit-source-id: 274e45115022ffd4e15b60dc57f77f1cce69bd82
Summary:
- Issuing NewTokenFrames to clients, allowing them to verify their address in subsequent connections by including the token.
- add NewTokenFrame struct in the union type QuicSimpleFrame.
- Issued only once when the crypto handshake is complete.
- Testing includes validating token serialization & deserialization and asserting that the NewTokenFrame is only issued once on handshake completeness.
Reviewed By: mjoras
Differential Revision: D31673160
fbshipit-source-id: 9401ab1a4b878d8b4380d55afa531ec768f5f4cd
Summary: It's useful at the end of a connection to know if we tried DSR.
Reviewed By: jbeshay
Differential Revision: D30545282
fbshipit-source-id: bbb2f3408f7a2d5666676c9e2583bf8fd9f18911
Summary:
- Removed packetNum field from CipherUnavailable struct.
- Removed all instances referring to the field and fixed tests accordingly.
Reviewed By: mjoras
Differential Revision: D29968168
fbshipit-source-id: 9802b8cd66f43f2a8d54340f2d00639ee4679aaf
Summary: The kitchen sink must grow. Nice to know when the conn ends what the version was.
Reviewed By: lnicco
Differential Revision: D27868680
fbshipit-source-id: 2770ed2c647d76affbb52597a5a2a6720eabfe66
Summary: As in title. This doesn't actually send any frames, but implements basic support for the transport parameter and responding to the frames.
Reviewed By: yangchi
Differential Revision: D26134787
fbshipit-source-id: 2c48e01084034317c8f36f89c69d172e3cb42278
Summary:
This introduces a new extension frame, the KnobFrame, and an implementation.
The idea with Knobs is that they are arbitrary key-values within a namespace that can be transmitted to the peer at any time. They provide an alternative to transport settings, by eschewing the standard transport setting space entirely.
The idea is simple, each knob has a "knobspace", "id", and value. The knobspace is a namespace in which the knob has semantic meaning (e.g. 0xfaceb00). The id and value are just that, arbitrary identifiers and values.
On receiving a knob it is the application's reponsibility to deal with it.
Reviewed By: mjoras
Differential Revision: D23601468
fbshipit-source-id: 63e5e4a7bdb76e11e8c952f1234f512a629ef348
Summary: In the spec these are now lowercase.
Reviewed By: avasylev
Differential Revision: D22104880
fbshipit-source-id: adc9bbcd7bd9e7babb1946648d2867ec7dc9336b
Summary: This is now an optional field on individual events.
Reviewed By: lnicco
Differential Revision: D22102853
fbshipit-source-id: ecfb4b4d9c2e594f10e93c8dfbff96b1dad4422d
Summary:
This adds a QLog event for Retry packets. There are three fields:
- packetType: This is always "RETRY"
- packetSize: The size of the entire packet
- tokenSize: The size of the retry token
Reviewed By: mjoras
Differential Revision: D20910017
fbshipit-source-id: feb4abbf0d15ff7b24fd11f00634e9da84bf8333
Summary: This is without cipher dropping, but the frame is parseable and the server will send it at the correct time.
Reviewed By: yangchi, lnicco
Differential Revision: D20235013
fbshipit-source-id: 696c11ec573a530b3ed9f4185a2f6847ee08819f
Summary: This implements the handshake done signal and also cipher dropping.
Reviewed By: yangchi
Differential Revision: D19584922
fbshipit-source-id: a98bec8f1076393b051ff65a2d8aae7d572b42f5
Summary: This is now "stream_id". The qvis tools rely on this.
Reviewed By: JunqiWang
Differential Revision: D19393624
fbshipit-source-id: 20d03aee6d6651507424b8749b30c57081c753ef
Summary:
The RETIRE_CONNECTION_ID serialization didn't actually log the name
of the frame type, so it didn't show up.
Changed sequenceNumber -> sequence.
Reviewed By: sharma95
Differential Revision: D19184626
fbshipit-source-id: 2cd4436c1ce1b22c9445b3179062c7926069414e
Summary:
Make this configurable via cmdline param. Plus some small
fixes/refactors.
Reviewed By: mjoras
Differential Revision: D19231872
fbshipit-source-id: 793db28a078fddee223a4c1e6d3a431562f9a24f
Summary: As a part of Draft 17, application close frame has been removed, we use connection close frame to represent both application close and connection close.
Reviewed By: mjoras
Differential Revision: D18580856
fbshipit-source-id: d274fa2d3dbc59b926bca5a2b8a20328ae582703
Summary:
QLogConnectionMigrationEvent:
Allow observing client-side ConnectionMigration attempts (replacing the
socket), and observing the server-side changing the peer address it
is writing to.
QLogPathValidationEvent:
Allow observing successful/failed path validation attempts.
Success is considered as a correct PathResponse being returned.
A Failure is only published on the timeout expiring, not an invalid
PathChallenge frame being returned (we do not cancel this).
There are already QlogEvents for PathChallenge/PathResponse that
can be observed.
Reviewed By: JunqiWang
Differential Revision: D18340999
fbshipit-source-id: 512108f82a6e082021c0bd3254f108c128b17ba3
Summary:
to make the log easier to parse. Otherwise i will need a script to
scan the whole log and calculate refTime differences.
Reviewed By: sharma95
Differential Revision: D18042798
fbshipit-source-id: 1573f60eacaedb361fc8cdc2332333ff8bee6a13
Summary:
This diff adds a new event for bandwidth estimation update, and
changed the app limited/unlimited into its own events instead of piggybacking
onto the congestion update
Reviewed By: mjoras
Differential Revision: D17602684
fbshipit-source-id: 48b855c68b58992d07b8c9b872aea637c4267137
Summary:
Add a pacing observer interface in QLogger . An implementation is
added for tperf.
Reviewed By: mjoras
Differential Revision: D17816559
fbshipit-source-id: c9079a24a6dab88df83f32fec35dc287c58989cf
Summary: Reduce the number of padding frames that are generated, to decrease overall qlog size.
Reviewed By: sharma95
Differential Revision: D16533449
fbshipit-source-id: 68f9c48e265576bff098dfeee87e576e86a32330
Summary:
Fixes include
1. Added packet_sent qlog event where it should be.
2. Reinitialize the qLogger after retry.
3. Fix issue where retry fails because packetNum can't be found.
Reviewed By: mjoras
Differential Revision: D16403221
fbshipit-source-id: 9288c1b24e98dc11e3b83575f58ca05445261ae3