Commit Graph

299 Commits

Author SHA1 Message Date
Marten Seemann
52d31dd7ef implement the new header format
Currently, we're only sending and accepting packets with matching source
and destination connection IDs.
2018-04-19 13:46:54 +09:00
Marten Seemann
1a035a265c change the type of Connection ID to byte slice 2018-04-18 22:41:24 +09:00
Marten Seemann
af8971d8c9 move connection ID generation from the utils to the protocol package 2018-04-17 20:21:06 +09:00
Marten Seemann
f052861775 only allow sending of retransmissions if these are RTO probe packets 2018-04-17 19:58:53 +09:00
Marten Seemann
c828742cde Merge pull request #1300 from lucas-clemente/prior-in-flight
call OnPacket{Acked, Lost} with the bytes in flight prior to event
2018-04-17 19:18:25 +09:00
Marten Seemann
6f2e568416 Merge pull request #1297 from lucas-clemente/move-rto-calculation
move calculation of RTO delay to the sent packet handler
2018-04-17 19:15:12 +09:00
Marten Seemann
90d2ac72bd call OnPacket{Acked, Lost} with the bytes in flight prior to event 2018-04-16 18:03:50 +09:00
Marten Seemann
2b9b949855 move calculation of RTO delay to the sent packet handler 2018-04-16 11:18:14 +09:00
Marten Seemann
6bc93a00e2 simplify curve 25519 key generation 2018-04-16 10:11:38 +09:00
Marten Seemann
ba9106c1ab compute handshake timeout based on the time of the last handshake packet 2018-04-05 14:39:58 +07:00
Marten Seemann
605607d39b implement spurious RTO detection 2018-04-04 17:47:29 +07:00
Marten Seemann
42d35360bb only delete the acked packet, but none of its retransmissions 2018-04-04 15:35:23 +07:00
Marten Seemann
0652eb97a0 add some debug log statements when queueing packets as retransmissions 2018-04-04 14:25:16 +07:00
Marten Seemann
948eef3e42 create a logger interface and use it everywhere 2018-04-04 13:03:28 +07:00
Marten Seemann
1e9b3f0bb2 simplify writing of the gQUIC Version Negotiation Packet 2018-04-04 13:03:22 +07:00
Marten Seemann
5e82335005 Merge pull request #1264 from lucas-clemente/ietf-quic-no-trial-decrypt
don't do trial decryption for IETF QUIC
2018-04-03 17:17:31 +07:00
Marten Seemann
d4b67d9d6c Merge pull request #1248 from lucas-clemente/fix-1247
allow empty STREAM frames at offset 0
2018-04-03 16:40:13 +07:00
Marten Seemann
efce19de55 Merge pull request #1270 from lucas-clemente/fix-1269
implement draft-10 changes for QHKDF-Expand
2018-04-03 16:19:40 +07:00
Marten Seemann
ae8d0808cf Merge pull request #1274 from lucas-clemente/remove-unused-packet-method
remove unused method from the ackhandler.Packet
2018-04-03 16:19:02 +07:00
Marten Seemann
294df18d5f Merge pull request #1272 from lucas-clemente/genny-linkedlist
use Genny to generate typed lists, based on Go standard library code
2018-04-03 16:18:37 +07:00
Marten Seemann
36dbb3477f Merge pull request #1266 from lucas-clemente/fnv128a
use the FNV 128a from the standard library
2018-04-03 16:18:04 +07:00
Marten Seemann
302d2a1715 don't use trial decryption for IETF QUIC 2018-03-31 14:29:44 +07:00
Marten Seemann
6c1eba5848 generate the diversification nonce when creating the server crypto setup 2018-03-31 14:29:44 +07:00
Marten Seemann
c6526ad927 replace the SetDiversificationNonce crypto setup method by a chan 2018-03-31 14:29:44 +07:00
Marten Seemann
538cd2c40b remove unused method from the ackhandler.Packet 2018-03-30 19:17:07 +07:00
Marten Seemann
7346d12d6c use Genny to generate typed lists, based on Go standard library code 2018-03-30 15:12:09 +07:00
Marten Seemann
1c2e104a86 don't set the send time of a packet in the sent packet handler 2018-03-30 13:28:22 +07:00
Marten Seemann
469bad6350 implement draft-10 changes for QHKDF-Expand 2018-03-29 14:21:53 +07:00
Marten Seemann
30c948a2fd allow empty STREAM frames at offset 0 2018-03-29 12:43:59 +07:00
Marten Seemann
b8b840bedf use the FNV 128a from the standard library 2018-03-29 12:43:05 +07:00
Marten Seemann
48731221c0 correctly handle errors when creating a new gQUIC key exchange 2018-03-28 05:33:26 +07:00
Marten Seemann
1f9ab3b65f remove unused key exchange function from client crypto setup 2018-03-28 05:31:56 +07:00
Marten Seemann
be066e825c privatize the frame parsing functions 2018-03-25 18:07:49 +02:00
Marten Seemann
21b608daac move frame parsing to the wire package 2018-03-25 18:07:44 +02:00
Marten Seemann
8772acab0a don't reduce the bytes in flight for RTO probe packets 2018-03-20 14:08:03 +00:00
Marten Seemann
a5688f954f Merge pull request #1251 from lucas-clemente/transport-parameters-max-stream-id
max stream values in the transport parameters are stream counts
2018-03-20 13:58:08 +00:00
Marten Seemann
46f8930fef calculate loss alarm based on send time of last retransmittable packet 2018-03-17 11:13:55 +00:00
Marten Seemann
b40942d39e send stream counts, not stream IDs, in the transport parameters 2018-03-16 17:41:21 +00:00
Marten Seemann
1fffb88553 fix typo in function name 2018-03-16 17:41:21 +00:00
Marten Seemann
fed3bf503e keep track of which packets were sent as retransmissions
When an ACK for a packet that was retransmitted arrives, we don't need
to retransmit the retransmission, even if it was lost.
2018-03-16 16:54:39 +01:00
Marten Seemann
56720edc34 report retransmissions separately to the sent packet handler 2018-03-14 11:15:52 +01:00
Marten Seemann
dc4a9b1d86 refactor sent packet handler tests 2018-03-14 11:15:26 +01:00
Marten Seemann
6a80d50fb9 optimize updating the RTT when receiving an ACK 2018-03-13 17:44:12 +01:00
Marten Seemann
9ffeba5445 refactor the sent packet history into a separate object 2018-03-13 17:44:12 +01:00
Marten Seemann
555fa8ec8e Merge pull request #1232 from lucas-clemente/packet-sending-modes
implement packet send modes to determine what kind of packets are sent
2018-03-13 17:39:20 +01:00
Marten Seemann
b5977236ff implement packet send modes to determine what kind of packets are sent 2018-03-13 14:49:48 +01:00
Marten Seemann
0f401b0b37 parse the max_packet_size in the TLS transport parameters 2018-03-10 14:14:09 +07:00
Marten Seemann
6a2c4548f7 Merge pull request #1231 from lucas-clemente/stricter-rtt-updated-test
test that exiting slow start and acking packets are done in right order
2018-03-09 23:37:26 +07:00
Marten Seemann
6ccc76a130 send packets with maximum IPv4 and IPv6 packet size 2018-03-09 22:36:44 +07:00
Marten Seemann
ae2247c869 test that exiting slow start and acking packets are done in right order 2018-03-09 10:29:29 +07:00