Marten Seemann
ee24d3899e
simplify the Tracer interface by combining the TracerFor... methods
2020-07-11 13:22:52 +07:00
Marten Seemann
f93708aca8
introduce a logging.CloseReason to log the reason a session was closed
...
This also allows us to get rid of the ReceivedStatelessReset() method.
2020-07-10 19:23:32 +07:00
Marten Seemann
7d6ce4ea45
rename the logging.CloseReason to TimeoutReason
2020-07-10 19:17:21 +07:00
Marten Seemann
993d71fd56
move the SupportedVersions slice out of the wire.Header
2020-07-09 12:05:33 +07:00
Marten Seemann
ed120f670c
add logging aliases for frames, create a logging.STREAM and CRYPTO frame
2020-07-06 09:21:32 +07:00
Marten Seemann
ac606222e0
replace the GetLogWriter quic.Config option by a Tracer interface
2020-07-01 16:57:03 +07:00
Marten Seemann
4121ea84f4
rename the logging.Tracer to ConnectionTracer
2020-07-01 16:57:01 +07:00
Marten Seemann
7f6eca84da
replace the logging.Export() method by a Close() method
2020-07-01 16:54:44 +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
9177500096
bundle ACK frames when packing a packet
2020-06-01 09:56:06 +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
dc3c96debf
qlog session timeouts
2020-04-17 08:23:25 +07:00
Marten Seemann
416dc485f8
add a qlog method to log version negotiation packets
2020-04-16 09:50:34 +07:00
Marten Seemann
ddab69ca9e
fix logging of the size of received packets
2020-04-07 16:45:15 +07:00
Marten Seemann
a5fc72047e
simplify pruning of old ACK ranges
2020-02-21 15:46:58 +07:00
Marten Seemann
d20c1bfaed
remove unused parameter from SentPacketHandler.ReceivedAck
2020-02-21 10:05:17 +07:00
Marten Seemann
8cde4ab638
refactor how session tickets are sent
...
Previously, RunHandshake() would send the session tickets. Now, the
session initiates the sending of the session ticket. This simplifies the
setup a bit, and it will make it possible to include the RTT estimate in
the session ticket without accessing the RTTStats concurrently.
2020-02-10 17:42:09 +07:00
Marten Seemann
539097fc6e
return a quic.ConnectionState from Session.ConnectionState()
2020-01-30 09:21:09 +07:00
Marten Seemann
bc25840519
use 0.5-RTT data to open the control stream in the http3 server
2020-01-29 10:40:06 +07:00
Marten Seemann
e8cffacc77
Merge pull request #2321 from lucas-clemente/update-mockgen
...
update gomock to v1.4.0, simplify mock generation
2020-01-29 00:01:00 +07:00
Marten Seemann
a93e544c94
remove Session.Close()
...
Session.Close() sends a transport-level error code. Applications should
not be able to call this function, but use CloseWithError() instead.
2020-01-26 17:41:53 +07:00
Marten Seemann
4fa5cfdca9
simplify generation of mocks for internal types
2020-01-26 13:24:35 +07:00
Marten Seemann
c809166cab
update gomock, simplify script for generation mocks of private types
2020-01-26 12:53:41 +07:00
Marten Seemann
40a993e31c
check that the client doesn't switch back to 0-RTT after sending 1-RTT
2020-01-01 18:04:02 +04:00
Marten Seemann
c5f74595ca
receive 0-RTT sealers and openers from qtls when using 0-RTT
2019-12-30 18:39:21 +04:00
Marten Seemann
f7fd5d2848
drop Handshake keys as soon as the handshake completes (as a server)
2019-12-06 10:29:48 +07:00
Marten Seemann
f3e3def599
don't send application data probe packets before the handshake completes
2019-11-12 14:12:24 +07:00
Marten Seemann
9c3b553e47
change PTO to be per packet number space
2019-11-12 11:29:51 +07:00
Marten Seemann
416fe8364e
remove unused return value from session constructor
2019-10-27 15:35:34 +07:00
Marten Seemann
717e6d5c96
implement serving multiple connections at the same time
2019-09-05 13:10:26 +07:00
Marten Seemann
1d392b4276
retransmit frames instead of packets
2019-08-29 15:00:10 +07:00
Marten Seemann
5fa38a83fa
remove tracking of which packet is retransmission of which other packet
2019-08-26 14:38:37 +07:00
Marten Seemann
bb48c9b31a
pass the time a packet was received to the short header opener
...
This saves us one time.Now() syscall per received 1-RTT packet.
2019-08-11 13:33:02 +07:00
Marten Seemann
d5585628d8
remove unneeded return value of ReceivedPacketHandler.ReceivedPacket()
2019-08-05 06:55:26 +07:00
Marten Seemann
f150ed4d4e
rename sentPacketHandler functions to match the recovery draft
2019-07-25 17:10:47 -04:00
Marten Seemann
5a9c593463
rename the KeyPhase to KeyPhaseBit
2019-06-30 17:36:09 +07:00
Marten Seemann
b5764f22a2
save the max_ack_delay in the rttStats
2019-06-29 13:40:56 +07:00
Marten Seemann
73d5d83a1d
pass the largest acked 1-RTT packet number to the crypto setup
2019-06-27 07:42:19 +08:00
Marten Seemann
598628d05b
use separate opener interfaces for long and short header packets
2019-06-22 20:01:18 +08:00
Marten Seemann
b2d3ef691e
use separate sealer interfaces for long and short header packets
2019-06-22 20:01:18 +08:00
Marten Seemann
c503769bcd
use separate functions per encryption level to get sealers
2019-06-22 20:01:18 +08:00
Marten Seemann
d4d3f09ee3
use separate functions per encryption level to get openers
2019-06-22 20:01:18 +08:00
Marten Seemann
2b8cece60a
add a context to Session.Open{Uni}StreamSync
2019-06-22 19:37:21 +08:00
Marten Seemann
5550ba2c3b
add a context to Session.Accept{Uni}Stream
2019-06-22 19:37:11 +08:00
Marten Seemann
fcb0d6cfdc
record InSlowStart and InRecovery
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