Commit Graph

4433 Commits

Author SHA1 Message Date
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
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