Commit Graph

655 Commits

Author SHA1 Message Date
Marten Seemann
fd33eb319f add a flag to turn off PRR 2019-05-21 10:57:55 +01: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
dca57baef6 Merge pull request #1901 from lucas-clemente/cleanup-send-algorithm
clean up the congestion interface
2019-05-13 16:10:17 +02:00
Marten Seemann
c869d51e52 remove unused SendAlgorithmWithDebugInfo from congestion package 2019-05-13 12:43:08 +02:00
Marten Seemann
448c49851b remove unused methods from the congestion interface 2019-05-13 12:11:29 +02:00
Marten Seemann
0a86224858 pass a string, not an error, to Session.CloseWithError 2019-05-13 08:04:24 +02: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
4042a8258c simplify writing of varint transport parameters 2019-05-08 12:53:19 +09:00
Marten Seemann
f847c5422d implement parsing and writing of the max_ack_delay transport parameter 2019-05-08 12:43:29 +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
4f6d0e651a implement HTTP/3 2019-04-11 09:06:10 +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
6be9c7bfcd use the full pacing rate, also when not in slow start 2019-04-08 13:38:12 +09:00
Marten Seemann
2976a3ee19 fix pacing rate
The pacing rate needs to be calculated for the next packet to be sent,
not for the next byte to be sent.
2019-04-07 13:11:36 +09:00
Marten Seemann
907071221c Merge pull request #1846 from lucas-clemente/fix-crypto-setup-race-condition
fix race condition when accessing the encryption level in crypto setup
2019-04-02 00:23:53 +09:00
Marten Seemann
9ffbd662c1 fix race condition when accessing the encryption level in crypto setup 2019-04-02 00:13:22 +09:00
Marten Seemann
66615797e7 Merge pull request #1840 from lucas-clemente/invalid-max-streams-values
error on invalid maximum stream number values
2019-04-01 05:15:52 +02:00
Marten Seemann
e9f7f87063 remove two stray TODOs from the crypto setup 2019-04-01 12:04:19 +09:00
Marten Seemann
7b02b87026 reject MAX_STREAMS frames with too large stream counts 2019-04-01 11:57:23 +09:00
Marten Seemann
a6d1917417 make sure the same session ticket key is used if none is configured 2019-04-01 11:45:20 +09:00
Marten Seemann
2adf923ee6 process the NewSessionTicket TLS message 2019-04-01 11:45:20 +09:00
Marten Seemann
da4b3e3176 pass a conn to qtls that returns the remote address 2019-04-01 11:45:20 +09:00
Marten Seemann
b2723d6d13 make the ClientSessionCache work with qtls 2019-04-01 11:45:16 +09:00
Marten Seemann
9ddf9129cf move generation of qtls.Config to a separate file, add tests 2019-04-01 11:41:06 +09:00
Marten Seemann
358fce241a Merge pull request #1841 from lucas-clemente/vnp-quic-bit
set the QUIC bit in Version Negotiation packets
2019-03-31 18:29:26 +02:00
Marten Seemann
09574a6653 expose the tls.ConnectionState 2019-03-31 23:56:24 +09:00
Marten Seemann
352ac45e32 set the QUIC bit in Version Negotiation packets 2019-03-29 09:20:41 +01:00
Marten Seemann
d44c81de7a remove verification of version negotiation 2019-03-23 11:26:20 +01:00
Marten Seemann
3264d7c583 fix logging of transport parameters without stateless reset tokens 2019-03-19 16:58:08 +09:00
Marten Seemann
f103919bf1 fix handling of HelloRetryRequests 2019-03-14 16:47:09 +09:00
Marten Seemann
e4bd715728 Merge pull request #1814 from lucas-clemente/stateless-resets
implement sending of stateless resets
2019-03-08 18:54:13 +09:00
Marten Seemann
6cf20310fe use an array for the stateless reset token in the transport parameters 2019-03-08 18:09:37 +09:00
Marten Seemann
79cd3235f8 log the stateless reset token in the transport parameters 2019-03-08 18:08:09 +09:00
Marten Seemann
5b27076a4c return the local TLS error, but don't send it on the wire 2019-03-08 18:02:43 +09:00
Marten Seemann
ae12852e4c add a message to crypto errors
The string representation varies depending on the message:
* if there's no message, the TLS alert is used
* if there's a message, it is used instead
2019-03-08 18:02:43 +09:00
Marten Seemann
373db3c153 send the correct error code for crypto errors 2019-03-08 18:02:43 +09:00
Marten Seemann
f9a21275a4 use the string representation of the TLS alert for crypto errors 2019-03-08 18:02:43 +09:00
Marten Seemann
e5303df419 implement a string representation for crypto error 2019-03-08 18:02:36 +09:00