Commit Graph

113 Commits

Author SHA1 Message Date
Marten Seemann
66abcdfc5c move calculation of the PTO to the rttStats
The PTO value is needed at various places in the protocol. Calculating
it on the rttStats struct will allow us to pass around this struct.
2019-06-29 14:57:24 +07:00
Marten Seemann
4366eac105 don't include the exponential backoff in the PTO calculation
According to the spec, the PTO is defined without the backoff. The
backoff is applied when setting the PTO alarm.
2019-06-29 14:02:05 +07:00
Marten Seemann
b5764f22a2 save the max_ack_delay in the rttStats 2019-06-29 13:40:56 +07:00
Marten Seemann
fcb0d6cfdc record InSlowStart and InRecovery 2019-06-20 22:58:01 +08:00
Marten Seemann
7c7b1ba9c7 add tracing for lost packets 2019-06-20 22:58:01 +08:00
Marten Seemann
22cbb344af move the TransportState struct to the quictrace package
Prevents an import loop when passing the tracer to the ackhandler.
2019-06-20 22:58:01 +08:00
Marten Seemann
267d11ee66 add tracing for sent and received packets 2019-06-20 22:58:01 +08:00
Marten Seemann
a4989c3d9c drop Initial and Handshake keys when receiving the first 1-RTT ACK 2019-05-30 14:19:26 +08:00
Marten Seemann
4834962cbd add a function to drop received packets of a certain encryption level 2019-05-30 14:19:11 +08:00
Marten Seemann
4d5b4fd790 add a function to drop sent packets of a certain encryption level 2019-05-30 13:47:16 +08:00
Marten Seemann
195bdc9944 remove unused handshakeComplete member variable from sent packet handler 2019-05-30 13:47:16 +08:00
Marten Seemann
ea33339d26 correct the bytes in flight when dropping crypto packets 2019-05-30 01:47:03 +08:00
Marten Seemann
8afed81c49 Merge pull request #1907 from lucas-clemente/can-send
use PRR when deciding if we're congestion limited
2019-05-20 08:44:33 +01:00
Marten Seemann
3e67c12d76 use PRR when deciding if we're congestion limited 2019-05-19 16:49:55 +02:00
Marten Seemann
fccdb1c558 use Reno instead of Cubic 2019-05-19 15:57:20 +02:00
Marten Seemann
e06961266c introduce an invalid packet number to simplify ackhandler and congestion 2019-05-14 06:41:13 +03:00
Marten Seemann
4e6df9041d use the max_ack_delay when computing the PTO duration 2019-05-08 14:47:46 +09:00
Marten Seemann
537737935c limit the ACK delay by max_ack_delay 2019-05-08 14:34:56 +09:00
Marten Seemann
0e33f3c0da don't send an ACK delay time for Initial and Handshake ACKs 2019-05-08 14:30:17 +09:00
Marten Seemann
f981339bc0 ignore the delay field for ACKs sent in Initial and Handshake packets 2019-05-08 14:15:42 +09:00
Marten Seemann
6c27967c8a include the timer granularity in the advertised max_ack_delay 2019-05-08 13:26:08 +09:00
Marten Seemann
af8c03ebaf advertize the max_ack_delay in the transport parameters 2019-05-08 13:22:37 +09:00
Marten Seemann
5d999f3927 handle ACKs separately in the sent packet handler packet struct 2019-04-21 20:47:27 +09:00
Marten Seemann
450d777a51 use the timer granularity as a minimum for the loss detection timer 2019-04-16 11:34:49 +09:00
Marten Seemann
2c27cc0090 rename the reordering threshold constant in the sent packet handler 2019-04-16 11:32:01 +09:00
Marten Seemann
9dc29effdf rename loss delay variable in sent packet handler
That's how it's called in the WG draft pseudo code.
2019-04-16 11:25:58 +09:00
Marten Seemann
b5336be518 rename retransmittable to ack-eliciting 2019-04-12 13:25:39 +09:00
Marten Seemann
7f9861bf7e reset the send mode after receiving an ACK when already in PTO mode 2019-04-09 10:24:45 +09:00
Marten Seemann
662041649f use the error names from the draft 2019-03-06 13:45:05 +09:00
Marten Seemann
9c09e84765 use IETF QUIC transport error codes 2019-03-06 13:43:18 +09:00
Marten Seemann
f6642ff948 use separate packet number spaces for sending packets
Packet numbers now start at 0 for every packet number spaces.
Furthermore, an ACK frame now only acknowledges packets in the packet
number space it was sent in.
2019-02-11 20:13:05 +08:00
Marten Seemann
b35c161f2e don't ignore reordered ACKs 2019-02-11 20:13:05 +08:00
Marten Seemann
631947ad7d use shorter variable name in the sent packet handler 2019-02-11 20:13:05 +08:00
Marten Seemann
17f4ebad64 handle Retry packets in the session 2019-02-04 15:38:47 +08:00
Marten Seemann
a303ad9745 always send ACKs in the correct packet number space 2019-01-11 11:12:07 +07:00
Marten Seemann
258e43ab95 rename the receivedPacketHandler to receivedPacketTracker 2019-01-11 10:52:39 +07:00
Marten Seemann
5ccc367462 start ignoring packets in ACK frames only after the handshake completed 2019-01-11 10:52:39 +07:00
Marten Seemann
5e3c96024a correctly set the ack delay in an ACK of packet number 0 2019-01-05 13:05:14 +07:00
Marten Seemann
77d48248ff unify TLP and RTO
This doesn't yet implement the persistent congestion detection, since
the specification of that still is in flux.
2019-01-01 09:53:09 +07:00
Marten Seemann
cf7f2dc661 rename handshake packets to crypto packets 2018-12-28 13:17:31 +07:00
Marten Seemann
7cb84c4e06 Merge pull request #1685 from lucas-clemente/increase-pn-after-vn-and-retry
increase the packet number after version negotiation and retry
2018-12-27 17:00:58 +07:00
Marten Seemann
178ac0dacb keep increasing the packet number after version negotiation and retry 2018-12-22 22:15:35 +06:30
Marten Seemann
1abf9e1b37 start with packet number 0 2018-12-22 21:25:14 +06:30
Marten Seemann
a4128ed469 accept multiple ACKs sent in the same packet 2018-12-21 21:10:23 +06:30
Marten Seemann
faed2ba30a remove version dependency of packet number inferring 2018-11-26 22:46:08 +07:00
Marten Seemann
c37b698f68 Merge pull request #1596 from lucas-clemente/internalize-errors
internalize the qerr package
2018-11-12 15:54:39 +07:00
Marten Seemann
3ffea5d8c4 internalize the qerr package 2018-11-11 12:44:16 +07:00
Marten Seemann
387613aa20 rename the BLOCKED from to DATA_BLOCKED 2018-11-10 09:05:06 +07:00
Marten Seemann
022189dfda rename the RST_STREAM frame to RESET_STREAM frame 2018-11-04 12:26:02 +07:00
Marten Seemann
dbbbfd955e move tracking of skipped packets to the packet number generator 2018-11-02 17:14:31 +07:00