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