Commit Graph

4217 Commits

Author SHA1 Message Date
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
Marten Seemann
572ef44cf2 use GoJay to marshal JSON
GoJay doesn't use reflection to marshal JSON. This allows dramatically
faster encoding, as well as saving a large number of allocations.
2020-02-12 10:35:54 +07:00
Marten Seemann
2e59206a1e implement marshalling of packet headers 2020-02-12 10:35:19 +07:00
Marten Seemann
60183f4fec implement marshalling of frames 2020-02-12 10:35:19 +07:00
Marten Seemann
df5890ffab Merge pull request #2340 from lucas-clemente/rtt-session-ticket-server
save the RTT in the session ticket and use it (on the server side)
2020-02-12 10:32:30 +07:00
Marten Seemann
cab9caaed5 Merge pull request #2342 from lucas-clemente/example-client-keylog
add a command line option to the example client to export a key log file
2020-02-12 00:49:48 +07:00
Marten Seemann
d498fc9463 Merge pull request #2343 from lucas-clemente/interop-key-log-file
use the SSLKEYLOGFILE env variable in the interop client and server
2020-02-12 00:49:24 +07:00
Marten Seemann
efde8443f1 use the SSLKEYLOGFILE env variable in the interop client and server 2020-02-11 17:37:16 +07:00
Marten Seemann
b412ed6d30 add a command line option to the example client to export a key log file 2020-02-11 13:22:11 +07:00
Marten Seemann
9ac52c5a0c Merge pull request #2339 from lucas-clemente/config-clone
add a Clone() function to the Config
2020-02-11 13:14:44 +07:00
Marten Seemann
72c2f9464c add a Clone() function to the Config 2020-02-11 13:03:19 +07:00
Marten Seemann
85abf5fc53 save the RTT in the session ticket and use it when accepting 0-RTT 2020-02-10 17:42:10 +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
3e32a693ad introduce a marshaling format for data saved in the session ticket 2020-02-10 18:02:45 +08:00
Marten Seemann
a8fc893ec4 Merge pull request #2338 from lucas-clemente/delete-0rtt-session-tickets
delete session tickets after using them for 0-RTT
2020-02-10 12:01:42 +08:00
Marten Seemann
362192862a Merge pull request #2334 from lucas-clemente/rtt-session-ticket
save the RTT along the session ticket and use it on resumed connections
2020-02-09 18:19:56 +01:00
Marten Seemann
70d8c0fbef delete session tickets after using them for 0-RTT 2020-02-09 18:40:08 +08:00
Marten Seemann
182a25d2b9 don't use ASN.1 for marshalling data for the session ticket 2020-02-08 21:42:11 +01:00
Marten Seemann
69ab66ba82 save the RTT along the session ticket and use it on resumed connections 2020-02-08 21:42:11 +01:00
Marten Seemann
8ad95ce2d3 Merge pull request #2299 from lucas-clemente/server-run-loop
introduce a run loop in the server
2020-02-04 07:56:36 +01:00
Marten Seemann
93693349f3 collapse packetHandlerManager.Add and AddIfNotTaken into one function 2020-02-03 17:34:07 +01:00
Marten Seemann
634169b061 don't return a stateless reset token when adding a new connection ID
Both server and client didn't make use of the token. It was only used by
the connIDGenerator.
2020-02-03 17:31:47 +01:00
Marten Seemann
44c1092ed7 send Retry, Version Negotiation and SERVER_BUSY packets asynchronously
Now that there's only a single run loop in the server, we should make
sure to process incoming packets as quickly as possible. This especially
means not blocking on conn.Write().
2020-02-03 17:31:47 +01:00
Marten Seemann
7f0dc56d70 introduce a server run loop for handling packets 2020-02-03 17:31:47 +01:00
Marten Seemann
cf71bdd05a use a MockPacketHandlerManager in all server tests 2020-02-03 17:31:47 +01:00
Marten Seemann
a576f26c83 Merge pull request #2333 from lucas-clemente/configure-cipher-suites
make the TLS cipher suites configurable
2020-02-03 17:22:02 +01:00
Marten Seemann
f91dfda8c3 make the TLS cipher suites configurable 2020-02-01 15:58:40 +07:00
Marten Seemann
54b38cac0f Merge pull request #2331 from lucas-clemente/chacha20-bug-workaround
add a workaround for the ChaCha20 bug
2020-01-31 15:32:28 +07:00
Marten Seemann
5893e1ec28 add a workaround for the ChaCha20 bug 2020-01-31 12:19:58 +07:00
Marten Seemann
894530336c Merge pull request #2330 from lucas-clemente/reject-0rtt-on-alpn-mismatch
reject 0-RTT on ALPN mismatch
2020-01-31 11:24:49 +07:00
Marten Seemann
8476b9c7e6 reject 0-RTT when the ALPN changed 2020-01-30 13:12:42 +07:00