Commit Graph

4248 Commits

Author SHA1 Message Date
Marten Seemann
b658f92060 use the golang/x/crypto ChaCha20 implementation
https://go-review.googlesource.com/c/crypto/+/206638 added the
SetCounter method required for QUIC's header protection.
2020-02-22 10:53:41 +07:00
Marten Seemann
f5d88d3edd Merge pull request #2359 from lucas-clemente/simplify-ack-range-pruning
simplify ACK range pruning
2020-02-21 16:00:14 +07:00
Marten Seemann
a5fc72047e simplify pruning of old ACK ranges 2020-02-21 15:46:58 +07:00
Marten Seemann
f317a471bb use a single constructor for SentPacketHandler and ReceivedPacketHandler 2020-02-21 15:45:24 +07:00
Marten Seemann
e9cdb29ef9 Merge pull request #2362 from lucas-clemente/client-amplification-protection
implement the client side for the amplification protection
2020-02-21 15:34:21 +07:00
Marten Seemann
e97e3040ed make sure the client sends packets to unblock the server 2020-02-21 12:29:11 +07:00
Marten Seemann
d20c1bfaed remove unused parameter from SentPacketHandler.ReceivedAck 2020-02-21 10:05:17 +07:00
Marten Seemann
73937e8753 Merge pull request #2349 from lucas-clemente/coalesced-packets
implement sending of coalesced packets
2020-02-20 16:53:33 +07:00
Marten Seemann
ad7327845c Merge pull request #2358 from lucas-clemente/drop-0rtt-keys
drop 0-RTT read keys after 3 PTO
2020-02-20 16:47:14 +07:00
Marten Seemann
23059d5a68 Merge pull request #2280 from lucas-clemente/zero-rtt-queue
queue 0-RTT for 100ms to allow the corresponding Initial to arrive
2020-02-20 16:44:03 +07:00
Marten Seemann
7a532326ec don't pack ACK frames in the second part of a coalesced packet
This prevents a possible overflow of the maximum packet size if the ACK
frames ends up being really large.
2020-02-20 16:42:58 +07:00
Marten Seemann
db7fc0eb02 simplify packing of Initial and Handshake packets 2020-02-20 16:42:58 +07:00
Marten Seemann
29b784e782 rename packet packing functions in the packet packer 2020-02-20 16:42:58 +07:00
Marten Seemann
5aad7cae5d send coalesced packets 2020-02-20 16:42:56 +07:00
Marten Seemann
244e1ae8e7 Merge pull request #2353 from lucas-clemente/qlog-connection-started-event
add support for the connection_started event
2020-02-20 16:27:22 +07:00
Marten Seemann
d642bf9098 simplify content storage in packed packets
It's not necessary to store both the packetBuffer and the slice
containing the raw data in the packet.
2020-02-20 16:25:54 +07:00
Marten Seemann
88fc6b9a87 Merge pull request #2332 from phuslu/http-context-key
Add LocalAddr/ContextKey to http3 request context
2020-02-20 16:24:50 +07:00
Marten Seemann
077504f557 refactor sealing of packets 2020-02-20 16:19:08 +07:00
Marten Seemann
a4b4d52063 refactor packing of packets before and after the handshake is confirmed 2020-02-20 16:19:08 +07:00
Marten Seemann
d08c2145a4 drop 0-RTT read keys after 3 PTO 2020-02-18 17:51:05 +07:00
Marten Seemann
e01995041e Merge pull request #2357 from lucas-clemente/loss-timer
fix early retransmit loss timer
2020-02-18 16:45:12 +07:00
Marten Seemann
1692adb142 fix unit tests for the early retransmit timer 2020-02-18 12:04:27 +07:00
zverevm
4f7b0b1675 Do not ignore loss timer. 2020-02-17 12:36:42 +01:00
Marten Seemann
9899be3a06 Merge pull request #2348 from lucas-clemente/send-all-packets-before-closing
make sure that all packets in the send queue are sent before closing
2020-02-17 17:18:25 +07:00
Marten Seemann
14a5cc8ab4 add support for the connection_started event 2020-02-17 15:52:06 +07:00
Marten Seemann
93e724434b make sure that all packets in the send queue are sent before closing 2020-02-17 13:41:00 +07:00
Marten Seemann
81cf5ba409 Merge pull request #2352 from lucas-clemente/tls-conn-localaddr
set the LocalAddr that is used in the tls.ClientHelloInfo.Conn
2020-02-17 13:24:36 +07:00
Marten Seemann
f034e8ba19 set the LocalAddr that is used in the tls.ClientHelloInfo.Conn 2020-02-16 14:10:30 +07:00
Marten Seemann
643f0b4c67 drop incoming packets when the server's receive queue is full 2020-02-15 16:43:00 +07:00
Marten Seemann
9b71878d53 release packet buffers when deleting a 0-RTT queue 2020-02-15 15:44:09 +07:00
Marten Seemann
ba095dd3ff delete 0-RTT queues if no Initial is received within 100ms 2020-02-15 15:44:09 +07:00
Marten Seemann
2b7133a6e2 implement a queue for 0-RTT packets 2020-02-15 15:44:08 +07:00
Marten Seemann
abf55af7e9 Merge pull request #2345 from lucas-clemente/interop-qlog
export qlogs from the interop runner
2020-02-13 15:28:54 +07:00
Marten Seemann
577e9cf118 Merge pull request #2346 from lucas-clemente/fix-example-client-keylogfile
fix keylog creation in the example client
2020-02-13 15:23:46 +07:00
Marten Seemann
d6e4b100e8 fix keylog creation in the example client 2020-02-12 15:38:50 +07:00
Marten Seemann
5aaab80698 export qlog files if the QLOGDIR env is set in interop client and server 2020-02-12 12:03:51 +07:00
Marten Seemann
89728126cc move function to create the TLS key log file to a separate file 2020-02-12 11:48:31 +07:00
Marten Seemann
dd035c2f12 Merge pull request #2323 from lucas-clemente/qlog
add basic support for qlog
2020-02-12 10:53:14 +07:00
Marten Seemann
a3fe9445cc set the packet_size on the packet_received and packet_sent event 2020-02-12 10:42:38 +07:00
Marten Seemann
708189c9a2 sort the events before exporting 2020-02-12 10:42:38 +07:00
Marten Seemann
5a7f743733 qlog lost packets 2020-02-12 10:42:38 +07:00
Marten Seemann
f13ca7e791 qlog loss recovery metrics 2020-02-12 10:42:38 +07:00
Marten Seemann
a58bcb747b qlog received Retry packets 2020-02-12 10:42:38 +07:00
Marten Seemann
b1a3e7a00b add a -qlog flag to the example client and server 2020-02-12 10:42:38 +07:00
Marten Seemann
b031615db5 export a qlog when the session's run loop stops 2020-02-12 10:42:37 +07:00
Marten Seemann
391a419142 add the packet_received event 2020-02-12 10:36:28 +07:00
Marten Seemann
4d92dd05f9 add the packet_sent event 2020-02-12 10:36:28 +07:00
Marten Seemann
4763719051 implement marshalling of the trace 2020-02-12 10:36:27 +07:00
Marten Seemann
bfd745106c determine the packet type from the QUIC header 2020-02-12 10:35:55 +07:00
Marten Seemann
e6d55ac467 implement marshalling of events 2020-02-12 10:35:55 +07:00