Commit Graph

217 Commits

Author SHA1 Message Date
Marten Seemann
0b7efe10d1 trace congestion state changes 2020-07-23 11:53:59 +07:00
Marten Seemann
741dc28d74 move the RTTStats to the utils package
The RTTStats are used by the logging package. In order to instrument the
congestion package, the RTTStats can't be part of that package any more
(to avoid an import loop).
2020-07-23 11:53:08 +07:00
Marten Seemann
743ba962aa reset the PTO count before setting the timer when dropping a PN space 2020-07-08 11:51:56 +07:00
Marten Seemann
4121ea84f4 rename the logging.Tracer to ConnectionTracer 2020-07-01 16:57:01 +07:00
Marten Seemann
7fdace490c rename qlogger (member) variables to tracer 2020-07-01 16:53:45 +07:00
Marten Seemann
78ba619a0b split the qlog package into a logging and a qlog package 2020-07-01 16:49:24 +07:00
Marten Seemann
fe622dd780 use a token bucket pacing algorithm 2020-06-22 14:31:37 +07:00
Marten Seemann
a8ddba6a39 remove unused packet counter in the receivedPacketTracker 2020-06-18 11:28:43 +07:00
Marten Seemann
6299ef3ab1 use the receipt of a Retry packet to get a first RTT estimate 2020-06-05 16:29:23 +07:00
Marten Seemann
dda9c27d07 only send a single packet to unblock the server during the handshake 2020-06-01 12:39:36 +07:00
Marten Seemann
d137e7672d implement a GetPTOTimeAndSpace() as outlined in the draft 2020-06-01 11:18:57 +07:00
Marten Seemann
96acf36cbd rename sentPacketHandler.getEarliestLossTimeAndSpace to getLossTimeAndSpace 2020-06-01 11:18:57 +07:00
Marten Seemann
feb3e9a713 rename lastSentAckElicitingPacketTime to lastAckElicitingPacketTime 2020-06-01 11:18:57 +07:00
Marten Seemann
9177500096 bundle ACK frames when packing a packet 2020-06-01 09:56:06 +07:00
Marten Seemann
77b1021a54 make it possible to generate an ACK frame, even if no ACK is queued yet 2020-06-01 09:31:11 +07:00
Marten Seemann
bee5ef624f determine if a received packet is new (and not a duplicate / delayed packet) 2020-06-01 09:31:11 +07:00
Marten Seemann
64ef72fd68 don't switch to PTO mode after early retransmit 2020-05-31 10:47:13 +07:00
Marten Seemann
ee8a0aeb1b improve unit tests for early retransmit 2020-05-31 10:43:04 +07:00
Marten Seemann
99dac1581a fix broken unit test in ackhandler 2020-05-29 17:20:47 +07:00
Marten Seemann
8d00ec135e Merge pull request #2569 from lucas-clemente/drop-duplicate-packets
drop duplicate packets
2020-05-29 16:39:46 +07:00
Marten Seemann
60a918a108 limit available window to 3x of received bytes before address validation 2020-05-27 09:40:50 +07:00
Marten Seemann
440ff107a3 drop duplicate packets
Duplicate detection uses the same data structure that is used to track
received packets to generate ACK frames. That means that after an old
ACK range has been pruned, a severly delayed packet might be incorrectly
detected as a duplicate.
As we wouldn't have acknowledged receipt of this packet, this situation
would have resulted in a retransmission by the peer anyway, so dropping
the packet won't cause a big regression.
2020-05-27 09:20:51 +07:00
Marten Seemann
b7af419bd0 Merge pull request #2527 from lucas-clemente/reset-pto-when-dropping-packet-number-space
reset the PTO when dropping a packet number space
2020-05-05 18:13:45 +07:00
Marten Seemann
741a1aa211 reset the PTO when dropping a packet number space 2020-05-05 16:28:25 +07:00
Marten Seemann
538cbf7dc0 don't reset the PTO count on Initial ACKs before address validation 2020-05-01 09:58:34 +07:00
Marten Seemann
15a19f681d add a unit test for resetting of the PTO count when receiving an ACK 2020-05-01 09:54:03 +07:00
Marten Seemann
d1d4e5ce02 reset the PTO count when receiving a Retry 2020-04-17 15:15:11 +07:00
Marten Seemann
140b90449b use decimal numbers when logging packet numbers 2020-04-16 09:50:55 +07:00
Marten Seemann
a983c40cdd don't log a metrics_update when sending a non-ack-eliciting packet 2020-04-04 13:45:25 +07:00
Marten Seemann
92c0f81bf4 improve error handling in sentPacketHandler 2020-04-04 13:00:39 +07:00
Marten Seemann
c810f95632 Merge pull request #2449 from lucas-clemente/qlog-loss-timer
implement the qlog loss timer events
2020-04-02 16:35:51 +07:00
Marten Seemann
5365ac2c47 Merge pull request #2457 from lucas-clemente/anti-deadlock-timer
correctly set anti-deadlock timer after the Initial space was dropped
2020-04-02 15:51:16 +07:00
Marten Seemann
d368117b13 qlog changes to the loss timer 2020-04-02 15:50:40 +07:00
Marten Seemann
3e2c27e4cd qlog updated metrics when sending a packet 2020-04-02 15:05:46 +07:00
Marten Seemann
c4c372744a correctly set anti-deadlock timer after the Initial space was dropped 2020-04-02 15:04:08 +07:00
Marten Seemann
c10af76a4a Merge pull request #2455 from lucas-clemente/loss-before-ack
notify the congestion controller of losses first
2020-04-02 14:38:39 +07:00
Marten Seemann
5ce1eb6013 move OnPacketLost out of detectAndRemoveLosPackets 2020-04-01 18:44:52 +07:00
Marten Seemann
269f14d86c notify the congestion controller of losses first 2020-04-01 17:33:29 +07:00
Marten Seemann
e2e3e10a63 rename methods in sentPacketHandler to match the draft 2020-04-01 13:39:55 +07:00
Marten Seemann
37f1a3fdda simplify removing of acked packets from packet history 2020-04-01 13:37:17 +07:00
Marten Seemann
e942a590fd rename peerNotAwaitingAddressValidation to peerCompletedAddressValidation 2020-03-31 08:30:16 +07:00
Marten Seemann
ef901e3435 use the current timestamp of every event in qlog 2020-03-23 16:25:42 +07:00
Marten Seemann
905407e477 Merge pull request #2427 from lucas-clemente/fix-pto-count-logging
only qlog the PTO count reset when the PTO count actually changed
2020-03-23 16:20:44 +07:00
Marten Seemann
6d61dccc2f rename the constructors for the various qerr.Error flavors 2020-03-21 10:53:03 +07:00
Marten Seemann
43d3eb2298 only qlog the PTO count reset when the PTO count actually changed 2020-03-18 16:02:41 +07:00
Marten Seemann
cdf2449785 don't send anti-deadlock packet after handshake confirmation 2020-03-11 15:08:01 +07:00
Marten Seemann
49a5856efb qlog changes of the PTO count 2020-03-10 16:51:28 +07:00
Marten Seemann
cef5416356 reset the PTO count when dropping a packet number space 2020-03-05 08:48:33 +07:00
Marten Seemann
24b840f56d fix dropping of the Initial packet number space for clients 2020-02-24 13:57:54 +07:00
Marten Seemann
a5fc72047e simplify pruning of old ACK ranges 2020-02-21 15:46:58 +07:00